Как запретить richfaces добавлять границы на панели и календари?
Вопрос
Я надеюсь использовать собственный скин richfaces для выполнения основной части моей работы с презентациями.К сожалению, richfaces отображает границы вокруг каждой ячейки компонента календаря и вокруг каждой панели.Я хотел бы отключить их, чтобы номера дней располагались в открытой сетке без границ.Не существует очевидного способа сделать это с помощью тем оформления или атрибутов элемента управления «Календарь».
Я мог бы использовать собственный CSS, но Я бы предпочел работать с платформой, чтобы полностью удалить свойства, связанные с границей, из таблиц стилей, созданных richfaces. вместо того, чтобы работать против фреймворка и переопределять все, используя уродливый CSS.
Так как же мне запретить richfaces добавлять границы на панели и календари?
У этого парня есть аналогичная проблема
Решение
Начиная с версии 3.3.0.GA невозможно попросить richfaces прекратить отрисовку CSS для границ и фона.Необходимо переопределить каждое из свойств из встроенных таблиц стилей (содержащихся в org.richfaces.renderkit.html.css, который является частью richfaces-ui-3.3.0.GA.jar).
Пробка и кожа дает вам необходимые возможности для этого, как и добавление пользовательского CSS с использованием обычных методов, хотя Plug and Skin, возможно, лучше, поскольку вы можете ссылаться на абстрактные определения цвета, чтобы компенсировать недостающий фон, например:
<u:style name="color" skin="abstractColorName" />
Следующие свойства CSS полезны для быстрой нейтрализации свойств, связанных с границей и фоном.
border: none;
background: transparent;
Чтобы начать работу с плагином и скином, вы можете использовать следующую последовательность команд Maven2:
mvn archetype:generate -DarchetypeGroupId=org.richfaces.cdk -DarchetypeArtifactId=maven-archetype-plug-n-skin -DarchetypeVersion=3.3.0.GA -DartifactId=fil-skins -Dpackage=com.feelitlive.richfaces -DgroupId=com.feelitlive.server -Dversion=0.0.1-SNAPSHOT -DarchetypeRepository=http://repository.jboss.com/maven2/
cd fil-skins
mvn cdk:add-skin -Dname=fil -Dpackage=com.feelitlive.richfaces.skins
Лучше всего это делать из командной строки, поскольку, к сожалению, плагины Eclipse не могут найти архетипы в репозитории jboss (другие IDE могут справиться с этим лучше).Вам потребуется изменить свойства артефакта, groupId, пакета, версии и имени в соответствии с вашим проектом.Выберите артефакт и имя пакета, которое отражает область применения артефакта для хранения нескольких определений скинов.
Было бы возможно - хотя и требует много работы - добавить поддержку свойств скина в общем формате xxxBackgroundEnabled и xxxBorderEnabled, чтобы отключить отрисовку этих границ и фона CSS в каждом конкретном случае.
Вам нужно будет работать с командой richfaces, чтобы исправить файлы xcss в org.richfaces.renderkit.html.css.Вам также понадобится какая-то функция условного вывода в одной из библиотек тегов XCSS JSF (обозначаемой http:/jsf.exadel.com/template/util или http:/jsf.exadel.com/template в файлах XCSS). который я ожидаю использовать для переноса групп свойств CSS в файлы XCSS.
Если вы внесли такую модификацию в richfaces, вы сможете отключить рендеринг спорного CSS из файла свойств любого скина.
Другие советы
Существует скин plain
, к которому почти не привязаны стили.
Скин 'plain' был добавлен в версии 3.0.2. Не имеет никакого параметры. Это необходимо для встраивания компонентов RichFaces в существующий проект, который имеет свои собственные стили.
Вы можете активировать его, добавив
<context-param>
<param-name>org.richfaces.SKIN</param-name>
<param-value>plain</param-value>
</context-param>
в web.xml
.
Вы также можете помешать RichFaces загружать любые стили вообще с помощью
<context-param>
<param-name>org.richfaces.LoadStyleStrategy</param-name>
<param-value>None</param-value>
</context-param>
установить в web.xml
.
Но будьте осторожны, так как он не будет работать в JBoss Portlet Bridge 1.0.0 . р>
RichFaces имеет встроенную систему скинов под названием Skinnability.Skinnability — это высокоуровневое расширение стандартного CSS.Вы можете создать свой собственный файл скина для использования в своем приложении(документация jboss).
В jar richfaces-impl папка /META-INF/skins содержит все файлы скинов (.skin.properties).Скопируйте один и переименуйте его, измените, что хотите.Вам придется восстановить банку.
ИЛИ
Вы можете использовать Plug-n-Skin Функция richfaces, которую я никогда раньше не пробовал, но, похоже, она также подойдет для того, что вы пытаетесь сделать.