Commit 25ef43892ed984c1f8eba8ff7e1b1558a12802b8
1 parent
4dd5e233
Restructuring repo to match branches/tags/trunk.
Showing
100 changed files
with
3645 additions
and
0 deletions
Too many changes to show.
To preserve performance only 100 of 100+ files are displayed.
samples/coordinatesGrid-sample/pom.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 3 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |
| 4 | + <parent> | |
| 5 | + <groupId>org.richfaces.sandbox.bernard</groupId> | |
| 6 | + <artifactId>parent</artifactId> | |
| 7 | + <version>3.3.4-SNAPSHOT</version> | |
| 8 | + <relativePath>../pom.xml</relativePath> | |
| 9 | + </parent> | |
| 10 | + <modelVersion>4.0.0</modelVersion> | |
| 11 | + <groupId>org.richfaces.sandbox.ui</groupId> | |
| 12 | + <artifactId>coordinatesGrid-sample</artifactId> | |
| 13 | + <packaging>war</packaging> | |
| 14 | + <name>coordinatesGrid-sample Maven Webapp</name> | |
| 15 | + <build> | |
| 16 | + <finalName>${project.artifactId}</finalName> | |
| 17 | + </build> | |
| 18 | + <dependencies> | |
| 19 | + <dependency> | |
| 20 | + <groupId>org.richfaces.ui</groupId> | |
| 21 | + <artifactId>richfaces-ui</artifactId> | |
| 22 | + </dependency> | |
| 23 | + <dependency> | |
| 24 | + <groupId>org.richfaces.sandbox.ui</groupId> | |
| 25 | + <artifactId>coordinatesGrid</artifactId> | |
| 26 | + <version>${project.version}</version> | |
| 27 | + </dependency> | |
| 28 | + <dependency> | |
| 29 | + <groupId>com.uwyn</groupId> | |
| 30 | + <artifactId>jhighlight</artifactId> | |
| 31 | + <version>1.0</version> | |
| 32 | + </dependency> | |
| 33 | + </dependencies> | |
| 34 | +</project> | ... | ... |
samples/coordinatesGrid-sample/src/main/java/org/richfaces/sandbox/coordinatesGrid/Seat.java
0 → 100644
| 1 | +package org.richfaces.sandbox.coordinatesGrid; | |
| 2 | + | |
| 3 | +import java.io.Serializable; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * @author a180963 | |
| 7 | + */ | |
| 8 | +public class Seat implements Serializable { | |
| 9 | + | |
| 10 | + private int row; | |
| 11 | + private int seatNr; | |
| 12 | + private boolean enabled; | |
| 13 | + | |
| 14 | + public int getRow() { | |
| 15 | + return row; | |
| 16 | + } | |
| 17 | + | |
| 18 | + public void setRow(int row) { | |
| 19 | + this.row = row; | |
| 20 | + } | |
| 21 | + | |
| 22 | + public int getSeatNr() { | |
| 23 | + return seatNr; | |
| 24 | + } | |
| 25 | + | |
| 26 | + public void setSeatNr(int seatNr) { | |
| 27 | + this.seatNr = seatNr; | |
| 28 | + } | |
| 29 | + | |
| 30 | + public boolean isEnabled() { | |
| 31 | + return enabled; | |
| 32 | + } | |
| 33 | + | |
| 34 | + public void setEnabled(boolean enabled) { | |
| 35 | + this.enabled = enabled; | |
| 36 | + } | |
| 37 | +} | ... | ... |
samples/coordinatesGrid-sample/src/main/java/org/richfaces/sandbox/coordinatesGrid/SeatSelector.java
0 → 100644
| 1 | +package org.richfaces.sandbox.coordinatesGrid; | |
| 2 | + | |
| 3 | +import org.ajax4jsf.model.DataVisitor; | |
| 4 | +import org.ajax4jsf.model.Range; | |
| 5 | +import org.ajax4jsf.model.SequenceDataModel; | |
| 6 | +import org.ajax4jsf.model.SequenceRange; | |
| 7 | +import org.richfaces.component.event.CoordinatesSelectionEvent; | |
| 8 | +import org.richfaces.component.model.SquareRange; | |
| 9 | + | |
| 10 | +import javax.faces.application.FacesMessage; | |
| 11 | +import javax.faces.context.FacesContext; | |
| 12 | +import javax.faces.model.DataModel; | |
| 13 | +import javax.faces.model.ListDataModel; | |
| 14 | +import java.io.IOException; | |
| 15 | +import java.util.AbstractList; | |
| 16 | + | |
| 17 | +public class SeatSelector { | |
| 18 | + | |
| 19 | + private Integer rows = 10; | |
| 20 | + private Integer cols = 20; | |
| 21 | + private Integer firstRow = 0; | |
| 22 | + private Integer firstCol = 0; | |
| 23 | + private Seat[][] seats = new Seat[rows][cols]; | |
| 24 | + private DataModel dataModel = new CustomDataModel(); | |
| 25 | + | |
| 26 | + public SeatSelector() { | |
| 27 | + | |
| 28 | + final Seat seat = new Seat(); | |
| 29 | + seat.setEnabled(true); | |
| 30 | + seat.setRow(3); | |
| 31 | + seat.setSeatNr(5); | |
| 32 | + seats[3][4] = seat; | |
| 33 | + } | |
| 34 | + | |
| 35 | + public Integer getRows() { | |
| 36 | + return rows; | |
| 37 | + } | |
| 38 | + | |
| 39 | + public void setRows(Integer rows) { | |
| 40 | + this.rows = rows; | |
| 41 | + resizeSeats(); | |
| 42 | + } | |
| 43 | + | |
| 44 | + public Integer getCols() { | |
| 45 | + return cols; | |
| 46 | + } | |
| 47 | + | |
| 48 | + public void setCols(Integer cols) { | |
| 49 | + this.cols = cols; | |
| 50 | + resizeSeats(); | |
| 51 | + } | |
| 52 | + | |
| 53 | + public Integer getFirstRow() { | |
| 54 | + return firstRow; | |
| 55 | + } | |
| 56 | + | |
| 57 | + public void setFirstRow(Integer row) { | |
| 58 | + this.firstRow = row; | |
| 59 | + } | |
| 60 | + | |
| 61 | + public Integer getFirstCol() { | |
| 62 | + return firstCol; | |
| 63 | + } | |
| 64 | + | |
| 65 | + public void setFirstCol(Integer col) { | |
| 66 | + this.firstCol = col; | |
| 67 | + } | |
| 68 | + | |
| 69 | + public DataModel getDataModel() { | |
| 70 | + return dataModel; | |
| 71 | + } | |
| 72 | + | |
| 73 | + public void itemsSelected(CoordinatesSelectionEvent e) { | |
| 74 | + for (int y = e.getStartY(); y <= e.getEndY(); y++) { | |
| 75 | + for (int x = e.getStartX(); x <= e.getEndX(); x++) { | |
| 76 | + if (seats[y][x] == null) { | |
| 77 | + Seat seat = new Seat(); | |
| 78 | + seat.setRow(y); | |
| 79 | + seat.setSeatNr(x); | |
| 80 | + seat.setEnabled(true); | |
| 81 | + seats[y][x] = seat; | |
| 82 | + } else { | |
| 83 | + seats[y][x] = null; | |
| 84 | + } | |
| 85 | + } | |
| 86 | + } | |
| 87 | + FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(e.toString())); | |
| 88 | + } | |
| 89 | + | |
| 90 | + public void itemsReserved(CoordinatesSelectionEvent e) { | |
| 91 | + for (int y = e.getStartY(); y <= e.getEndY(); y++) { | |
| 92 | + for (int x = e.getStartX(); x <= e.getEndX(); x++) { | |
| 93 | + if (seats[y][x] != null) { | |
| 94 | + seats[y][x].setEnabled(!seats[y][x].isEnabled()); | |
| 95 | + } | |
| 96 | + } | |
| 97 | + } | |
| 98 | + } | |
| 99 | + | |
| 100 | + private void resizeSeats() { | |
| 101 | + Seat[][] newSeats = new Seat[rows][cols]; | |
| 102 | + for (int y = 0; y < Math.min(seats.length, newSeats.length); y++) { | |
| 103 | + System.arraycopy(seats[y], 0, newSeats[y], 0, Math.min(seats[y].length, newSeats[y].length)); | |
| 104 | + } | |
| 105 | + seats = newSeats; | |
| 106 | + } | |
| 107 | + | |
| 108 | + private class CustomDataModel extends SequenceDataModel { | |
| 109 | + | |
| 110 | + public CustomDataModel() { | |
| 111 | + super(new ListDataModel(new AbstractList<Seat>() { | |
| 112 | + | |
| 113 | + @Override | |
| 114 | + public Seat get(int index) { | |
| 115 | + int y = index / cols; | |
| 116 | + int x = index % cols; | |
| 117 | + return seats[y][x]; | |
| 118 | + } | |
| 119 | + | |
| 120 | + @Override | |
| 121 | + public int size() { | |
| 122 | + return cols * rows; | |
| 123 | + } | |
| 124 | + })); | |
| 125 | + } | |
| 126 | + | |
| 127 | + @Override | |
| 128 | + public boolean isRowAvailable() { | |
| 129 | + return super.isRowAvailable() && getRowData() != null; | |
| 130 | + } | |
| 131 | + | |
| 132 | + @Override | |
| 133 | + public void walk(FacesContext context, DataVisitor visitor, Range range, Object argument) throws IOException { | |
| 134 | + SquareRange squareRange = null; | |
| 135 | + if (range instanceof SquareRange) { | |
| 136 | + squareRange = (SquareRange) range; | |
| 137 | + } | |
| 138 | + if (squareRange == null) { | |
| 139 | + super.walk(context, visitor, new SequenceRange(0, -1), argument); | |
| 140 | + } else { | |
| 141 | + for (int y = squareRange.getStartY(); y <= squareRange.getEndY(); y++) { | |
| 142 | + for (int x = squareRange.getStartX(); x <= squareRange.getEndX(); x++) { | |
| 143 | + if (0 <= y && y < seats.length && 0 <= x && x < seats[y].length && seats[y][x] != null) { | |
| 144 | + visitor.process(context, y * cols + x, argument); | |
| 145 | + } | |
| 146 | + } | |
| 147 | + } | |
| 148 | + } | |
| 149 | + } | |
| 150 | + } | |
| 151 | +} | ... | ... |
| 1 | +<?xml version="1.0"?> | |
| 2 | +<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" | |
| 3 | + "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"> | |
| 4 | +<faces-config> | |
| 5 | + <managed-bean> | |
| 6 | + <managed-bean-name>seatSelector</managed-bean-name> | |
| 7 | + <managed-bean-class>org.richfaces.sandbox.coordinatesGrid.SeatSelector</managed-bean-class> | |
| 8 | + <managed-bean-scope>session</managed-bean-scope> | |
| 9 | + </managed-bean> | |
| 10 | +</faces-config> | |
| 11 | + | ... | ... |
| 1 | +<jboss-deployment-structure> | |
| 2 | + <deployment> | |
| 3 | + <exclusions> | |
| 4 | + <module name="javax.faces.api" slot="main"/> | |
| 5 | + <module name="com.sun.jsf-impl" slot="main"/> | |
| 6 | + </exclusions> | |
| 7 | + <dependencies> | |
| 8 | + <module name="org.apache.commons.logging"/> | |
| 9 | + <module name="org.apache.commons.collections"/> | |
| 10 | + <module name="org.apache.commons.beanutils"/> | |
| 11 | + <module name="javax.faces.api" slot="1.2"/> | |
| 12 | + <module name="com.sun.jsf-impl" slot="1.2"/> | |
| 13 | + </dependencies> | |
| 14 | + </deployment> | |
| 15 | +</jboss-deployment-structure> | |
| 16 | + | ... | ... |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 3 | + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> | |
| 4 | + <description>Richfaces coordinatesGrid-sm Sample</description> | |
| 5 | + <display-name>coordinatesGrid-sm-sample</display-name> | |
| 6 | + <context-param> | |
| 7 | + <param-name>javax.faces.DEFAULT_SUFFIX</param-name> | |
| 8 | + <param-value>.xhtml</param-value> | |
| 9 | + </context-param> | |
| 10 | + <context-param> | |
| 11 | + <param-name>facelets.REFRESH_PERIOD</param-name> | |
| 12 | + <param-value>2</param-value> | |
| 13 | + </context-param> | |
| 14 | + <context-param> | |
| 15 | + <param-name>facelets.DEVELOPMENT</param-name> | |
| 16 | + <param-value>true</param-value> | |
| 17 | + </context-param> | |
| 18 | + <context-param> | |
| 19 | + <param-name>javax.faces.STATE_SAVING_METHOD</param-name> | |
| 20 | + <param-value>server</param-value> | |
| 21 | + </context-param> | |
| 22 | + <context-param> | |
| 23 | + <param-name>com.sun.faces.validateXml</param-name> | |
| 24 | + <param-value>true</param-value> | |
| 25 | + </context-param> | |
| 26 | + <context-param> | |
| 27 | + <param-name>com.sun.faces.verifyObjects</param-name> | |
| 28 | + <param-value>false</param-value> | |
| 29 | + </context-param> | |
| 30 | + <context-param> | |
| 31 | + <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name> | |
| 32 | + <param-value>com.sun.facelets.FaceletViewHandler</param-value> | |
| 33 | + </context-param> | |
| 34 | + <context-param> | |
| 35 | + <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name> | |
| 36 | + <param-value>false</param-value> | |
| 37 | + </context-param> | |
| 38 | + <context-param> | |
| 39 | + <param-name>org.richfaces.SKIN</param-name> | |
| 40 | + <param-value>blueSky</param-value> | |
| 41 | + </context-param> | |
| 42 | + <context-param> | |
| 43 | + <param-name>org.richfaces.CONTROL_SKINNING_LEVEL</param-name> | |
| 44 | + <param-value>extended</param-value> | |
| 45 | + </context-param> | |
| 46 | + <filter> | |
| 47 | + <display-name>Ajax4jsf Filter</display-name> | |
| 48 | + <filter-name>ajax4jsf</filter-name> | |
| 49 | + <filter-class>org.ajax4jsf.Filter</filter-class> | |
| 50 | + <init-param> | |
| 51 | + <param-name>enable-cache</param-name> | |
| 52 | + <param-value>false</param-value> | |
| 53 | + </init-param> | |
| 54 | + </filter> | |
| 55 | + <filter-mapping> | |
| 56 | + <filter-name>ajax4jsf</filter-name> | |
| 57 | + <servlet-name>Faces Servlet</servlet-name> | |
| 58 | + <dispatcher>FORWARD</dispatcher> | |
| 59 | + <dispatcher>REQUEST</dispatcher> | |
| 60 | + <dispatcher>INCLUDE</dispatcher> | |
| 61 | + </filter-mapping> | |
| 62 | + <servlet> | |
| 63 | + <servlet-name>Faces Servlet</servlet-name> | |
| 64 | + <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> | |
| 65 | + <load-on-startup>1</load-on-startup> | |
| 66 | + </servlet> | |
| 67 | + <servlet-mapping> | |
| 68 | + <servlet-name>Faces Servlet</servlet-name> | |
| 69 | + <url-pattern>*.jsf</url-pattern> | |
| 70 | + </servlet-mapping> | |
| 71 | + <login-config> | |
| 72 | + <auth-method>BASIC</auth-method> | |
| 73 | + </login-config> | |
| 74 | +</web-app> | ... | ... |
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 4 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 5 | + xmlns:h="http://java.sun.com/jsf/html" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" | |
| 6 | + xmlns:coordinatesGrid="http://richfaces.org/sandbox/coordinatesGrid" | |
| 7 | + xmlns:notify="http://richfaces.org/sandbox/notify"> | |
| 8 | +<head> | |
| 9 | + <title>CoordinatesGrid sample</title> | |
| 10 | + <style type="text/css"> | |
| 11 | + .rf-cg td.enabled { | |
| 12 | + background-color: #aaa; | |
| 13 | + } | |
| 14 | + | |
| 15 | + .rf-cg td.disabled { | |
| 16 | + background-color: inherit; | |
| 17 | + } | |
| 18 | + | |
| 19 | + .booker td.enabled { | |
| 20 | + background-color: #dfd; | |
| 21 | + } | |
| 22 | + | |
| 23 | + .booker td.disabled { | |
| 24 | + background-color: #ddd; | |
| 25 | + } | |
| 26 | + | |
| 27 | + .rf-cg td.highlight { | |
| 28 | + background-color: #{a4jSkin.headerBackgroundColor}; | |
| 29 | + } | |
| 30 | + </style> | |
| 31 | + <script type="text/javascript"> | |
| 32 | + function selectHandler(startX, startY, endX, endY) { | |
| 33 | + jQuery("#status").html(startX + ";" + startY + ";" + endX + ";" + endY); | |
| 34 | + } | |
| 35 | + function clickHandler(x, y) { | |
| 36 | + jQuery("#status").html("click:" + x + ";" + y); | |
| 37 | + } | |
| 38 | + </script> | |
| 39 | +</head> | |
| 40 | + | |
| 41 | +<body class="rich-container"> | |
| 42 | +<ui:include src="menu.xhtml"/> | |
| 43 | + | |
| 44 | +<p> | |
| 45 | + | |
| 46 | +</p> | |
| 47 | +<notify:notifyMessages ajaxRendered="true"/> | |
| 48 | +<h:panelGrid columns="3"> | |
| 49 | + <h:panelGroup> | |
| 50 | + <h:form> | |
| 51 | + <h:panelGrid columns="2"> | |
| 52 | + <h:outputLabel value="rows" for="rows"/> | |
| 53 | + <h:inputText value="#{seatSelector.rows}" id="rows"/> | |
| 54 | + <h:outputLabel value="cols" for="cols"/> | |
| 55 | + <h:inputText value="#{seatSelector.cols}" id="cols"/> | |
| 56 | + </h:panelGrid> | |
| 57 | + <h:commandButton value="Submit"/> | |
| 58 | + </h:form> | |
| 59 | + | |
| 60 | + </h:panelGroup> | |
| 61 | + | |
| 62 | +</h:panelGrid> | |
| 63 | +<h:form> | |
| 64 | + <h:panelGrid columns="2"> | |
| 65 | + <coordinatesGrid:coordinatesGrid | |
| 66 | + selectable="true" | |
| 67 | + value="#{seatSelector.dataModel}" | |
| 68 | + var="seat" | |
| 69 | + rows="#{seatSelector.rows}" | |
| 70 | + cols="#{seatSelector.cols}" | |
| 71 | + onselect="selectHandler(startX,startY,endX,endY);" | |
| 72 | + onclick="clickHandler(x,y);" | |
| 73 | + selectionListener="#{seatSelector.itemsSelected}" | |
| 74 | + rowIndexVar="rowIndex" | |
| 75 | + rowHeaderText="#{rowIndex+1}" | |
| 76 | + rowHeaderPosition="both" | |
| 77 | + colIndexVar="colIndex" | |
| 78 | + colHeaderText="#{colIndex+1}" | |
| 79 | + colHeaderPosition="both" | |
| 80 | + reRender="booker" | |
| 81 | + > | |
| 82 | + <coordinatesGrid:coordinatesGridItem x="#{seat.seatNr}" y="#{seat.row}" text="#{seat.row}x#{seat.seatNr}" | |
| 83 | + styleClass="enabled"/> | |
| 84 | + </coordinatesGrid:coordinatesGrid> | |
| 85 | + <coordinatesGrid:coordinatesGrid id="booker" styleClass="booker" | |
| 86 | + value="#{seatSelector.dataModel}" | |
| 87 | + var="seat" | |
| 88 | + rows="#{seatSelector.rows}" | |
| 89 | + cols="#{seatSelector.cols}" | |
| 90 | + onselect="selectHandler(startX,startY,endX,endY);" | |
| 91 | + onclick="clickHandler(x,y);" | |
| 92 | + selectionListener="#{seatSelector.itemsReserved}" | |
| 93 | + rowIndexVar="rowIndex" | |
| 94 | + rowHeaderText="#{rowIndex+1}" | |
| 95 | + rowHeaderPosition="both" | |
| 96 | + colIndexVar="colIndex" | |
| 97 | + colHeaderText="#{colIndex+1}" | |
| 98 | + colHeaderPosition="both" | |
| 99 | + > | |
| 100 | + <coordinatesGrid:coordinatesGridItem x="#{seat.seatNr}" y="#{seat.row}" text="#{seat.row}x#{seat.seatNr}" | |
| 101 | + styleClass="#{seat.enabled ? 'enabled' : 'disabled'}"/> | |
| 102 | + </coordinatesGrid:coordinatesGrid> | |
| 103 | + </h:panelGrid> | |
| 104 | +</h:form> | |
| 105 | + | |
| 106 | +<div id="status"></div> | |
| 107 | +<rich:insert src="/index.xhtml" highlight="xhtml" rendered="#{showSource!=false}"/> | |
| 108 | + | |
| 109 | +</body> | |
| 110 | +</html> | ... | ... |
| 1 | +<ui:component xmlns="http://www.w3.org/1999/xhtml" | |
| 2 | + xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 3 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 4 | + xmlns:h="http://java.sun.com/jsf/html"> | |
| 5 | + <h:panelGrid colsumns="3"> | |
| 6 | + <h:outputLink value="#{facesContext.externalContext.requestContextPath}/index.jsf">Example 1</h:outputLink> | |
| 7 | + </h:panelGrid> | |
| 8 | +</ui:component> | ... | ... |
samples/dock-sample/pom.xml
0 → 100644
| 1 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 2 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |
| 3 | + <parent> | |
| 4 | + <groupId>org.richfaces.sandbox.bernard</groupId> | |
| 5 | + <artifactId>parent</artifactId> | |
| 6 | + <version>3.3.4-SNAPSHOT</version> | |
| 7 | + <relativePath>../pom.xml</relativePath> | |
| 8 | + </parent> | |
| 9 | + <modelVersion>4.0.0</modelVersion> | |
| 10 | + <groupId>org.richfaces.sandbox.ui</groupId> | |
| 11 | + <artifactId>dock-sample</artifactId> | |
| 12 | + <packaging>war</packaging> | |
| 13 | + <name>dock-sample Maven Webapp</name> | |
| 14 | + <build> | |
| 15 | + <finalName>${project.artifactId}</finalName> | |
| 16 | + </build> | |
| 17 | + <dependencies> | |
| 18 | + <dependency> | |
| 19 | + <groupId>org.richfaces.ui</groupId> | |
| 20 | + <artifactId>richfaces-ui</artifactId> | |
| 21 | + </dependency> | |
| 22 | + <dependency> | |
| 23 | + <groupId>org.richfaces.sandbox.ui</groupId> | |
| 24 | + <artifactId>dock</artifactId> | |
| 25 | + <version>${project.version}</version> | |
| 26 | + </dependency> | |
| 27 | + <dependency> | |
| 28 | + <groupId>org.richfaces.sandbox.ui</groupId> | |
| 29 | + <artifactId>notify</artifactId> | |
| 30 | + <version>${project.version}</version> | |
| 31 | + </dependency> | |
| 32 | + <dependency> | |
| 33 | + <groupId>com.uwyn</groupId> | |
| 34 | + <artifactId>jhighlight</artifactId> | |
| 35 | + <version>1.0</version> | |
| 36 | + </dependency> | |
| 37 | + </dependencies> | |
| 38 | +</project> | |
| 39 | + | ... | ... |
| 1 | +package org.richfaces.sandbox.dock; | |
| 2 | + | |
| 3 | +import javax.faces.application.FacesMessage; | |
| 4 | +import javax.faces.context.FacesContext; | |
| 5 | + | |
| 6 | +public class Greeter { | |
| 7 | + | |
| 8 | + public String sayHello() { | |
| 9 | + FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Hello", | |
| 10 | + "You've just made JSF postback. Isn't this great!")); | |
| 11 | + return "hello"; | |
| 12 | + } | |
| 13 | + | |
| 14 | + public String sayHelloAjax() { | |
| 15 | + FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Hello", | |
| 16 | + "This is AJAX request. Isn't this even greater!")); | |
| 17 | + return "helloAjax"; | |
| 18 | + } | |
| 19 | + | |
| 20 | +} | ... | ... |
| 1 | +<?xml version="1.0"?> | |
| 2 | +<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" | |
| 3 | + "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"> | |
| 4 | +<faces-config> | |
| 5 | + <managed-bean> | |
| 6 | + <managed-bean-name>greeter</managed-bean-name> | |
| 7 | + <managed-bean-class>org.richfaces.sandbox.dock.Greeter</managed-bean-class> | |
| 8 | + <managed-bean-scope>request</managed-bean-scope> | |
| 9 | + </managed-bean> | |
| 10 | +</faces-config> | |
| 11 | + | ... | ... |
| 1 | +<jboss-deployment-structure> | |
| 2 | + <deployment> | |
| 3 | + <exclusions> | |
| 4 | + <module name="javax.faces.api" slot="main"/> | |
| 5 | + <module name="com.sun.jsf-impl" slot="main"/> | |
| 6 | + </exclusions> | |
| 7 | + <dependencies> | |
| 8 | + <module name="org.apache.commons.logging"/> | |
| 9 | + <module name="org.apache.commons.collections"/> | |
| 10 | + <module name="org.apache.commons.beanutils"/> | |
| 11 | + <module name="javax.faces.api" slot="1.2"/> | |
| 12 | + <module name="com.sun.jsf-impl" slot="1.2"/> | |
| 13 | + </dependencies> | |
| 14 | + </deployment> | |
| 15 | +</jboss-deployment-structure> | |
| 16 | + | ... | ... |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 3 | + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> | |
| 4 | + <description>Richfaces Notify Sample</description> | |
| 5 | + <display-name>notify-sample</display-name> | |
| 6 | + <context-param> | |
| 7 | + <param-name>javax.faces.DEFAULT_SUFFIX</param-name> | |
| 8 | + <param-value>.xhtml</param-value> | |
| 9 | + </context-param> | |
| 10 | + <context-param> | |
| 11 | + <param-name>facelets.REFRESH_PERIOD</param-name> | |
| 12 | + <param-value>2</param-value> | |
| 13 | + </context-param> | |
| 14 | + <context-param> | |
| 15 | + <param-name>facelets.DEVELOPMENT</param-name> | |
| 16 | + <param-value>true</param-value> | |
| 17 | + </context-param> | |
| 18 | + <context-param> | |
| 19 | + <param-name>javax.faces.STATE_SAVING_METHOD</param-name> | |
| 20 | + <param-value>server</param-value> | |
| 21 | + </context-param> | |
| 22 | + <context-param> | |
| 23 | + <param-name>com.sun.faces.validateXml</param-name> | |
| 24 | + <param-value>true</param-value> | |
| 25 | + </context-param> | |
| 26 | + <context-param> | |
| 27 | + <param-name>com.sun.faces.verifyObjects</param-name> | |
| 28 | + <param-value>false</param-value> | |
| 29 | + </context-param> | |
| 30 | + <context-param> | |
| 31 | + <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name> | |
| 32 | + <param-value>com.sun.facelets.FaceletViewHandler</param-value> | |
| 33 | + </context-param> | |
| 34 | + <context-param> | |
| 35 | + <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name> | |
| 36 | + <param-value>false</param-value> | |
| 37 | + </context-param> | |
| 38 | + <context-param> | |
| 39 | + <param-name>org.richfaces.SKIN</param-name> | |
| 40 | + <param-value>blueSky</param-value> | |
| 41 | + </context-param> | |
| 42 | + <context-param> | |
| 43 | + <param-name>org.richfaces.CONTROL_SKINNING_LEVEL</param-name> | |
| 44 | + <param-value>extended</param-value> | |
| 45 | + </context-param> | |
| 46 | + <filter> | |
| 47 | + <display-name>Ajax4jsf Filter</display-name> | |
| 48 | + <filter-name>ajax4jsf</filter-name> | |
| 49 | + <filter-class>org.ajax4jsf.Filter</filter-class> | |
| 50 | + <init-param> | |
| 51 | + <param-name>enable-cache</param-name> | |
| 52 | + <param-value>false</param-value> | |
| 53 | + </init-param> | |
| 54 | + </filter> | |
| 55 | + <filter-mapping> | |
| 56 | + <filter-name>ajax4jsf</filter-name> | |
| 57 | + <servlet-name>Faces Servlet</servlet-name> | |
| 58 | + <dispatcher>FORWARD</dispatcher> | |
| 59 | + <dispatcher>REQUEST</dispatcher> | |
| 60 | + <dispatcher>INCLUDE</dispatcher> | |
| 61 | + </filter-mapping> | |
| 62 | + <servlet> | |
| 63 | + <servlet-name>Faces Servlet</servlet-name> | |
| 64 | + <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> | |
| 65 | + <load-on-startup>1</load-on-startup> | |
| 66 | + </servlet> | |
| 67 | + <servlet-mapping> | |
| 68 | + <servlet-name>Faces Servlet</servlet-name> | |
| 69 | + <url-pattern>*.jsf</url-pattern> | |
| 70 | + </servlet-mapping> | |
| 71 | + <login-config> | |
| 72 | + <auth-method>BASIC</auth-method> | |
| 73 | + </login-config> | |
| 74 | +</web-app> | ... | ... |
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | +<html xmlns="http://www.w3.org/1999/xhtml" | |
| 4 | + xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 5 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 6 | + xmlns:h="http://java.sun.com/jsf/html" | |
| 7 | + xmlns:a4j="http://richfaces.org/a4j" | |
| 8 | + xmlns:rich="http://richfaces.org/rich" | |
| 9 | + xmlns:dock="http://richfaces.org/sandbox/dock" | |
| 10 | + xmlns:notify="http://richfaces.org/sandbox/notify" | |
| 11 | + > | |
| 12 | +<head> | |
| 13 | + <title>Dock sample</title> | |
| 14 | + <style type="text/css"> | |
| 15 | + .rf-dk .jqDockLabelText { | |
| 16 | + font-size: 16px; | |
| 17 | + } | |
| 18 | + | |
| 19 | + .bottom { | |
| 20 | + position: fixed; | |
| 21 | + bottom: 0; | |
| 22 | + width:100%; | |
| 23 | + } | |
| 24 | + .bottom .jqDockWrap { | |
| 25 | + margin: 0 auto; | |
| 26 | + } | |
| 27 | + | |
| 28 | + </style> | |
| 29 | +</head> | |
| 30 | +<body class="rich-container"> | |
| 31 | +<ui:include src="menu.xhtml"/> | |
| 32 | +<notify:notifyMessages ajaxRendered="true" showDetail="true"/> | |
| 33 | + | |
| 34 | +<p> | |
| 35 | + Here we have notify displaying all messages (not only global). | |
| 36 | + Severity is reflected in overriden style classes. | |
| 37 | +</p> | |
| 38 | +<h:form> | |
| 39 | + | |
| 40 | + <dock:dock> | |
| 41 | + <h:outputLink title="Output link"> | |
| 42 | + <h:graphicImage value="images/next.png"/> | |
| 43 | + </h:outputLink> | |
| 44 | + | |
| 45 | + <h:commandLink title="Command link" action="#{greeter.sayHello}"> | |
| 46 | + <h:graphicImage value="images/pause.png"/> | |
| 47 | + </h:commandLink> | |
| 48 | + | |
| 49 | + <h:graphicImage value="images/play.png" title="Image without link but with a4j:support"> | |
| 50 | + <a4j:support event="onclick" action="#{greeter.sayHelloAjax}" ajaxSingle="true"/> | |
| 51 | + </h:graphicImage> | |
| 52 | + | |
| 53 | + <h:outputLink title="Link defined on link"> | |
| 54 | + <h:graphicImage value="images/previous.png"/> | |
| 55 | + </h:outputLink> | |
| 56 | + | |
| 57 | + <a title="Regular link with regular image" onclick="alert('I\'m so static')"> | |
| 58 | + <img src="images/stop.png" alt=""/> | |
| 59 | + </a> | |
| 60 | + </dock:dock> | |
| 61 | + | |
| 62 | + <dock:dock align="bottom" labels="tc" styleClass="bottom"> | |
| 63 | + <h:outputLink title="Output link"> | |
| 64 | + <h:graphicImage value="images/next.png"/> | |
| 65 | + </h:outputLink> | |
| 66 | + | |
| 67 | + <h:commandLink title="Command link" action="#{greeter.sayHello}"> | |
| 68 | + <h:graphicImage value="images/pause.png"/> | |
| 69 | + </h:commandLink> | |
| 70 | + | |
| 71 | + <h:graphicImage value="images/play.png" title="Image without link but with a4j:support"> | |
| 72 | + <a4j:support event="onclick" action="#{greeter.sayHelloAjax}" ajaxSingle="true"/> | |
| 73 | + </h:graphicImage> | |
| 74 | + | |
| 75 | + <h:outputLink title="Link defined on link"> | |
| 76 | + <h:graphicImage value="images/previous.png"/> | |
| 77 | + </h:outputLink> | |
| 78 | + | |
| 79 | + <a title="Regular link with regular image" onclick="alert('I\'m so static')"> | |
| 80 | + <img src="images/stop.png" alt=""/> | |
| 81 | + </a> | |
| 82 | + </dock:dock> | |
| 83 | + | |
| 84 | + <dock:dock align="left" labels="mr" style="position:absolute;left:0;"> | |
| 85 | + <h:outputLink title="Output link"> | |
| 86 | + <h:graphicImage value="images/next.png"/> | |
| 87 | + </h:outputLink> | |
| 88 | + | |
| 89 | + <h:commandLink title="Command link" action="#{greeter.sayHello}"> | |
| 90 | + <h:graphicImage value="images/pause.png"/> | |
| 91 | + </h:commandLink> | |
| 92 | + | |
| 93 | + <h:graphicImage value="images/play.png" title="Image without link but with a4j:support"> | |
| 94 | + <a4j:support event="onclick" action="#{greeter.sayHelloAjax}" ajaxSingle="true"/> | |
| 95 | + </h:graphicImage> | |
| 96 | + | |
| 97 | + <h:outputLink title="Link defined on link"> | |
| 98 | + <h:graphicImage value="images/previous.png"/> | |
| 99 | + </h:outputLink> | |
| 100 | + | |
| 101 | + <a title="Regular link with regular image" onclick="alert('I\'m so static')"> | |
| 102 | + <img src="images/stop.png" alt=""/> | |
| 103 | + </a> | |
| 104 | + </dock:dock> | |
| 105 | + | |
| 106 | +</h:form> | |
| 107 | + | |
| 108 | +<rich:insert src="/dock.xhtml" highlight="xhtml"/> | |
| 109 | + | |
| 110 | +</body> | |
| 111 | +</html> | ... | ... |
6.26 KB
6.06 KB
6.26 KB
6.23 KB
6.14 KB
| 1 | +<ui:component xmlns="http://www.w3.org/1999/xhtml" | |
| 2 | + xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 3 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 4 | + xmlns:h="http://java.sun.com/jsf/html"> | |
| 5 | + <h:panelGrid columns="3"> | |
| 6 | + <h:outputLink value="#{facesContext.externalContext.requestContextPath}/dock.jsf">Example 1</h:outputLink> | |
| 7 | + </h:panelGrid> | |
| 8 | +</ui:component> | ... | ... |
samples/focus-sample/pom.xml
0 → 100644
| 1 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 2 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |
| 3 | + <parent> | |
| 4 | + <groupId>org.richfaces.sandbox.bernard</groupId> | |
| 5 | + <artifactId>parent</artifactId> | |
| 6 | + <version>3.3.4-SNAPSHOT</version> | |
| 7 | + <relativePath>../pom.xml</relativePath> | |
| 8 | + </parent> | |
| 9 | + <modelVersion>4.0.0</modelVersion> | |
| 10 | + <groupId>org.richfaces</groupId> | |
| 11 | + <artifactId>focus-sample</artifactId> | |
| 12 | + <packaging>war</packaging> | |
| 13 | + <name>focus-sample Maven Webapp</name> | |
| 14 | + <build> | |
| 15 | + <finalName>${project.artifactId}</finalName> | |
| 16 | + </build> | |
| 17 | + <dependencies> | |
| 18 | + <dependency> | |
| 19 | + <groupId>org.richfaces.ui</groupId> | |
| 20 | + <artifactId>core</artifactId> | |
| 21 | + <version>${project.version}</version> | |
| 22 | + </dependency> | |
| 23 | + <dependency> | |
| 24 | + <groupId>org.richfaces.ui</groupId> | |
| 25 | + <artifactId>richfaces-ui</artifactId> | |
| 26 | + </dependency> | |
| 27 | + <dependency> | |
| 28 | + <groupId>com.uwyn</groupId> | |
| 29 | + <artifactId>jhighlight</artifactId> | |
| 30 | + <version>1.0</version> | |
| 31 | + </dependency> | |
| 32 | + <dependency> | |
| 33 | + <groupId>org.richfaces.sandbox.ui</groupId> | |
| 34 | + <artifactId>focus</artifactId> | |
| 35 | + <version>${project.version}</version> | |
| 36 | + </dependency> | |
| 37 | + </dependencies> | |
| 38 | +</project> | ... | ... |
| 1 | +<jboss-deployment-structure> | |
| 2 | + <deployment> | |
| 3 | + <exclusions> | |
| 4 | + <module name="javax.faces.api" slot="main"/> | |
| 5 | + <module name="com.sun.jsf-impl" slot="main"/> | |
| 6 | + </exclusions> | |
| 7 | + <dependencies> | |
| 8 | + <module name="org.apache.commons.logging"/> | |
| 9 | + <module name="org.apache.commons.collections"/> | |
| 10 | + <module name="org.apache.commons.beanutils"/> | |
| 11 | + <module name="javax.faces.api" slot="1.2"/> | |
| 12 | + <module name="com.sun.jsf-impl" slot="1.2"/> | |
| 13 | + </dependencies> | |
| 14 | + </deployment> | |
| 15 | +</jboss-deployment-structure> | |
| 16 | + | ... | ... |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" | |
| 3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 4 | + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> | |
| 5 | + <description>Richfaces Focus Sample</description> | |
| 6 | + <display-name>focus-sample</display-name> | |
| 7 | + <context-param> | |
| 8 | + <param-name>javax.faces.DEFAULT_SUFFIX</param-name> | |
| 9 | + <param-value>.xhtml</param-value> | |
| 10 | + </context-param> | |
| 11 | + <context-param> | |
| 12 | + <param-name>facelets.REFRESH_PERIOD</param-name> | |
| 13 | + <param-value>2</param-value> | |
| 14 | + </context-param> | |
| 15 | + <context-param> | |
| 16 | + <param-name>facelets.DEVELOPMENT</param-name> | |
| 17 | + <param-value>true</param-value> | |
| 18 | + </context-param> | |
| 19 | + <context-param> | |
| 20 | + <param-name>javax.faces.STATE_SAVING_METHOD</param-name> | |
| 21 | + <param-value>client</param-value> | |
| 22 | + </context-param> | |
| 23 | + <context-param> | |
| 24 | + <param-name>com.sun.faces.validateXml</param-name> | |
| 25 | + <param-value>true</param-value> | |
| 26 | + </context-param> | |
| 27 | + <context-param> | |
| 28 | + <param-name>com.sun.faces.verifyObjects</param-name> | |
| 29 | + <param-value>true</param-value> | |
| 30 | + </context-param> | |
| 31 | + <context-param> | |
| 32 | + <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name> | |
| 33 | + <param-value>com.sun.facelets.FaceletViewHandler</param-value> | |
| 34 | + </context-param> | |
| 35 | + <context-param> | |
| 36 | + <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name> | |
| 37 | + <param-value>false</param-value> | |
| 38 | + </context-param> | |
| 39 | + <filter> | |
| 40 | + <display-name>Ajax4jsf Filter</display-name> | |
| 41 | + <filter-name>ajax4jsf</filter-name> | |
| 42 | + <filter-class>org.ajax4jsf.Filter</filter-class> | |
| 43 | + </filter> | |
| 44 | + <filter-mapping> | |
| 45 | + <filter-name>ajax4jsf</filter-name> | |
| 46 | + <servlet-name>Faces Servlet</servlet-name> | |
| 47 | + <dispatcher>FORWARD</dispatcher> | |
| 48 | + <dispatcher>REQUEST</dispatcher> | |
| 49 | + <dispatcher>INCLUDE</dispatcher> | |
| 50 | + </filter-mapping> | |
| 51 | + <servlet> | |
| 52 | + <servlet-name>Faces Servlet</servlet-name> | |
| 53 | + <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> | |
| 54 | + <load-on-startup>1</load-on-startup> | |
| 55 | + </servlet> | |
| 56 | + <servlet-mapping> | |
| 57 | + <servlet-name>Faces Servlet</servlet-name> | |
| 58 | + <url-pattern>*.jsf</url-pattern> | |
| 59 | + </servlet-mapping> | |
| 60 | + <login-config> | |
| 61 | + <auth-method>BASIC</auth-method> | |
| 62 | + </login-config> | |
| 63 | +</web-app> | ... | ... |
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | +<html xmlns="http://www.w3.org/1999/xhtml" | |
| 4 | + xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 5 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 6 | + xmlns:h="http://java.sun.com/jsf/html" | |
| 7 | + xmlns:focus="http://richfaces.org/sandbox/focus" | |
| 8 | + xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" | |
| 9 | + > | |
| 10 | +<head> | |
| 11 | + <title>Focus sample</title> | |
| 12 | +</head> | |
| 13 | +<body> | |
| 14 | +<ui:include src="menu.xhtml"/> | |
| 15 | + | |
| 16 | +<p>Focus should be placed on email: | |
| 17 | + <ul> | |
| 18 | + <li>username gets default priority 0</li> | |
| 19 | + <li>email gets priority -1</li> | |
| 20 | + </ul> | |
| 21 | +</p> | |
| 22 | + | |
| 23 | +<h:form> | |
| 24 | + <h:panelGrid columns="3"> | |
| 25 | + <h:outputLabel value="Username" for="username"/> | |
| 26 | + <h:inputText value="#{username}" id="username" required="true"> | |
| 27 | + <focus:focus/> | |
| 28 | + </h:inputText> | |
| 29 | + <h:message for="username"/> | |
| 30 | + | |
| 31 | + <h:outputLabel value="Email" for="email"/> | |
| 32 | + <h:inputText value="#{email}" id="email" required="true"/> | |
| 33 | + <h:message for="email"/> | |
| 34 | + </h:panelGrid> | |
| 35 | + <h:commandButton value="Submit"/> | |
| 36 | + <focus:focus for="email" priority="-1"/> | |
| 37 | +</h:form> | |
| 38 | + | |
| 39 | +<rich:insert src="/focus_1.xhtml" highlight="html"/> | |
| 40 | + | |
| 41 | +</body> | |
| 42 | +</html> | ... | ... |
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | +<html xmlns="http://www.w3.org/1999/xhtml" | |
| 4 | + xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 5 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 6 | + xmlns:h="http://java.sun.com/jsf/html" | |
| 7 | + xmlns:focus="http://richfaces.org/sandbox/focus" xmlns:rich="http://richfaces.org/rich" | |
| 8 | + > | |
| 9 | +<head> | |
| 10 | + <title>Focus sample</title> | |
| 11 | +</head> | |
| 12 | +<body> | |
| 13 | +<ui:include src="menu.xhtml"/> | |
| 14 | + | |
| 15 | +<p>Focus should be placed on first radio : | |
| 16 | + <ul> | |
| 17 | + <li>username gets priority 9999</li> | |
| 18 | + <li>email gets default priority 1</li> | |
| 19 | + </ul> | |
| 20 | +</p> | |
| 21 | +<h:form> | |
| 22 | + <h:panelGrid columns="3"> | |
| 23 | + | |
| 24 | + <h:outputLabel value="Username" for="username"/> | |
| 25 | + <h:inputText value="#{username}" id="username" required="true"> | |
| 26 | + <focus:focus priority="9999"/> | |
| 27 | + </h:inputText> | |
| 28 | + <h:message for="username"/> | |
| 29 | + | |
| 30 | + <h:outputLabel value="Option" for="option"/> | |
| 31 | + <h:selectOneRadio value="#{option}" id="option" required="true"> | |
| 32 | + <f:selectItem itemLabel="Option 1" itemValue="1"/> | |
| 33 | + <f:selectItem itemLabel="Option 2" itemValue="2"/> | |
| 34 | + <f:selectItem itemLabel="Option 3" itemValue="3"/> | |
| 35 | + <focus:focus suffix=":0"/> | |
| 36 | + </h:selectOneRadio> | |
| 37 | + <h:message for="option"/> | |
| 38 | + | |
| 39 | + </h:panelGrid> | |
| 40 | + <h:commandButton value="Submit"/> | |
| 41 | +</h:form> | |
| 42 | + | |
| 43 | +<rich:insert src="/focus_2.xhtml" highlight="html"/> | |
| 44 | + | |
| 45 | +</body> | |
| 46 | +</html> | ... | ... |
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | +<html xmlns="http://www.w3.org/1999/xhtml" | |
| 4 | + xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 5 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 6 | + xmlns:h="http://java.sun.com/jsf/html" | |
| 7 | + xmlns:focus="http://richfaces.org/sandbox/focus" xmlns:rich="http://richfaces.org/rich" | |
| 8 | + > | |
| 9 | +<head> | |
| 10 | + <title>Focus sample</title> | |
| 11 | +</head> | |
| 12 | +<body> | |
| 13 | +<ui:include src="menu.xhtml"/> | |
| 14 | + | |
| 15 | +<p>Focus should be placed on username : | |
| 16 | + <ul> | |
| 17 | + <li>username gets default priority 0</li> | |
| 18 | + <li>email gets priority 1</li> | |
| 19 | + </ul> | |
| 20 | +</p> | |
| 21 | +<h:form> | |
| 22 | + <h:panelGrid columns="3"> | |
| 23 | + <h:outputLabel value="Username" for="username"/> | |
| 24 | + <h:inputText value="#{username}" id="username" required="true"> | |
| 25 | + <focus:focus/> | |
| 26 | + </h:inputText> | |
| 27 | + <h:message for="username"/> | |
| 28 | + | |
| 29 | + <h:outputLabel value="Email" for="email"/> | |
| 30 | + <h:inputText value="#{email}" id="email" required="true"/> | |
| 31 | + <h:message for="email"/> | |
| 32 | + </h:panelGrid> | |
| 33 | + <h:commandButton value="Submit"/> | |
| 34 | + <focus:focus for="email"/> | |
| 35 | +</h:form> | |
| 36 | + | |
| 37 | +<rich:insert src="/focus_3.xhtml" highlight="html"/> | |
| 38 | + | |
| 39 | +</body> | |
| 40 | +</html> | ... | ... |
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 4 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 5 | + xmlns:h="http://java.sun.com/jsf/html" xmlns:focus="http://richfaces.org/sandbox/focus" | |
| 6 | + xmlns:rich="http://richfaces.org/rich"> | |
| 7 | +<head> | |
| 8 | + <title>Focus sample</title> | |
| 9 | +</head> | |
| 10 | +<body> | |
| 11 | +<ui:include src="menu.xhtml"/> | |
| 12 | + | |
| 13 | +<p>This example shows that focus can be put on non JSF control</p> | |
| 14 | +<h:panelGrid columns="3"> | |
| 15 | + <h:outputLabel value="Non JSF control" for="option"/> | |
| 16 | + <input type="radio" id="option_1" name="option"/> 1 | |
| 17 | + <input type="radio" id="option_2" name="option"/> 2 | |
| 18 | +</h:panelGrid> | |
| 19 | +<focus:focus targetClientId="option_2"/> | |
| 20 | + | |
| 21 | +<rich:insert src="/focus_4.xhtml" highlight="html"/> | |
| 22 | + | |
| 23 | +</body> | |
| 24 | +</html> | ... | ... |
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | +<html xmlns="http://www.w3.org/1999/xhtml" | |
| 4 | + xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 5 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 6 | + xmlns:h="http://java.sun.com/jsf/html" | |
| 7 | + xmlns:focus="http://richfaces.org/sandbox/focus" xmlns:rich="http://richfaces.org/rich" | |
| 8 | + > | |
| 9 | +<head> | |
| 10 | + <title>Focus sample</title> | |
| 11 | +</head> | |
| 12 | +<body> | |
| 13 | +<ui:include src="menu.xhtml"/> | |
| 14 | + | |
| 15 | +<p>On initial request focus should be placed on username. This is because direct parent of | |
| 16 | + focus component is not UIInput. | |
| 17 | + In such situation focus is put on first UIInput in parent form. | |
| 18 | + Please not that focus component is not direct child of form. | |
| 19 | + This sample is to ensure you that UIInput is not searched | |
| 20 | + within direct parent of focus component, but within nesting form. | |
| 21 | +</p> | |
| 22 | +<ul> | |
| 23 | + <li>username gets default priority 0</li> | |
| 24 | + <li>email gets priority 1</li> | |
| 25 | +</ul> | |
| 26 | +<p>On form submit, when username is valid and email is invalid, focus | |
| 27 | + should be placed on email. | |
| 28 | +</p> | |
| 29 | + | |
| 30 | +<p>On form submit, when all fields are valid, focus | |
| 31 | + should be placed on username. | |
| 32 | +</p> | |
| 33 | +<h:form> | |
| 34 | + <h:panelGrid columns="3"> | |
| 35 | + <h:outputLabel value="Username" for="username"/> | |
| 36 | + <h:inputText value="#{username}" id="username" required="true"/> | |
| 37 | + <h:message for="username"/> | |
| 38 | + </h:panelGrid> | |
| 39 | + <h:panelGrid columns="3"> | |
| 40 | + <h:outputLabel value="Email" for="email"/> | |
| 41 | + <h:inputText value="#{email}" id="email" required="true"/> | |
| 42 | + <h:message for="email"/> | |
| 43 | + <focus:focus/> | |
| 44 | + </h:panelGrid> | |
| 45 | + <h:commandButton value="Submit"/> | |
| 46 | +</h:form> | |
| 47 | + | |
| 48 | +<rich:insert src="/focus_5.xhtml" highlight="html"/> | |
| 49 | + | |
| 50 | +</body> | |
| 51 | +</html> | ... | ... |
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | +<html xmlns="http://www.w3.org/1999/xhtml" | |
| 4 | + xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 5 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 6 | + xmlns:h="http://java.sun.com/jsf/html" | |
| 7 | + xmlns:focus="http://richfaces.org/sandbox/focus" xmlns:rich="http://richfaces.org/rich" | |
| 8 | + xmlns:a4j="http://richfaces.org/a4j" | |
| 9 | + > | |
| 10 | +<head> | |
| 11 | + <title>Focus sample</title> | |
| 12 | +</head> | |
| 13 | +<body> | |
| 14 | +<ui:include src="menu.xhtml"/> | |
| 15 | + | |
| 16 | +<p> | |
| 17 | + Focus is placed on control withing modal panel. Modal panel is rendered before it is shown, thus | |
| 18 | + javascript that sets focus should not be invoked at that moment. | |
| 19 | + To cope with that focus component has "timing" attribute which, when valued to "onJScall" | |
| 20 | + allows setting focus later whenever user wishes. When "timing" is set to "onJScall" then "name" attribute | |
| 21 | + must be also specified. It is name of JavaScript function that will be generated and can be called by user | |
| 22 | + to set focus in any moment. | |
| 23 | + In this example we put onshow="focusTheForm();" in modal panel which causes | |
| 24 | + focus to be placed after the modal is visible. | |
| 25 | + Notice that "name" attribute of focuse component is equal to "focusTheForm". | |
| 26 | +</p> | |
| 27 | +<h:form> | |
| 28 | + <h:commandButton value="Show modal"> | |
| 29 | + <rich:componentControl for="panel" event="onclick" operation="show" disableDefault="true"/> | |
| 30 | + </h:commandButton> | |
| 31 | +</h:form> | |
| 32 | +<rich:modalPanel id="panel" autosized="true" onshow="focusTheForm();"> | |
| 33 | + <h:form id="theForm"> | |
| 34 | + <focus:focus name="focusTheForm" timing="onJScall"/> | |
| 35 | + <h:panelGrid columns="3"> | |
| 36 | + <h:outputLabel value="Username" for="username"/> | |
| 37 | + <h:inputText value="#{username}" id="username" required="true"/> | |
| 38 | + <h:message for="username"/> | |
| 39 | + <h:outputLabel value="Email" for="email"/> | |
| 40 | + <h:inputText value="#{email}" id="email" required="true"/> | |
| 41 | + <h:message for="email"/> | |
| 42 | + </h:panelGrid> | |
| 43 | + <a4j:commandButton value="Submit" reRender="theForm" oncomplete="Richfaces.FocusManager.focus();"/> | |
| 44 | + <h:commandButton value="Close"> | |
| 45 | + <rich:componentControl for="panel" event="onclick" operation="hide" disableDefault="true"/> | |
| 46 | + </h:commandButton> | |
| 47 | + </h:form> | |
| 48 | +</rich:modalPanel> | |
| 49 | + | |
| 50 | +<rich:insert src="/focus_6.xhtml" highlight="html"/> | |
| 51 | + | |
| 52 | +</body> | |
| 53 | +</html> | ... | ... |
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 4 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 5 | + xmlns:h="http://java.sun.com/jsf/html" xmlns:focus="http://richfaces.org/sandbox/focus" | |
| 6 | + xmlns:rich="http://richfaces.org/rich" | |
| 7 | + xmlns:a4j="http://richfaces.org/a4j"> | |
| 8 | +<head> | |
| 9 | + <title>Focus sample</title> | |
| 10 | +</head> | |
| 11 | +<body> | |
| 12 | +<ui:include src="menu.xhtml"/> | |
| 13 | + | |
| 14 | +<p> | |
| 15 | + Some components like h:selectOneRadio render elements that have identifiers matching component's clientId+suffix. | |
| 16 | + This might be a pain if we want to have single "focus" component inside form, but be able to focus any type of the invalid | |
| 17 | + components. | |
| 18 | + That's what focusModifier component is for. | |
| 19 | + Some components cause even grater pain cause you cannot nest anything inside (rich:calendar). | |
| 20 | + To cope with this put focusModifier inside "focusModifier" facet. </p> | |
| 21 | +<h:form> | |
| 22 | + <focus:focus/> | |
| 23 | + <h:panelGrid columns="3"> | |
| 24 | + <h:outputLabel value="Option" for="option"/> | |
| 25 | + <h:selectOneRadio value="#{option}" id="option" required="true"> | |
| 26 | + <f:selectItem itemLabel="Option 1" itemValue="1"/> | |
| 27 | + <f:selectItem itemLabel="Option 2" itemValue="2"/> | |
| 28 | + <f:selectItem itemLabel="Option 3" itemValue="3"/> | |
| 29 | + <focus:focusModifier suffix=":2"/> | |
| 30 | + </h:selectOneRadio> | |
| 31 | + <h:message for="option"/> | |
| 32 | + | |
| 33 | + <h:outputLabel value="Email" for="email"/> | |
| 34 | + <h:inputText value="#{email}" id="email" required="true"/> | |
| 35 | + <h:message for="email"/> | |
| 36 | + <h:outputLabel value="Date" for="date"/> | |
| 37 | + <rich:calendar value="#{date}" id="date" enableManualInput="true" required="true"> | |
| 38 | + <f:facet name="focusModifier"> | |
| 39 | + <focus:focusModifier suffix="InputDate"/> | |
| 40 | + </f:facet> | |
| 41 | + </rich:calendar> | |
| 42 | + <h:message for="date"/> | |
| 43 | + </h:panelGrid> | |
| 44 | + <h:commandButton value="submit"/> | |
| 45 | +</h:form> | |
| 46 | + | |
| 47 | +<rich:insert src="/focus_7.xhtml" highlight="html"/> | |
| 48 | + | |
| 49 | +</body> | |
| 50 | +</html> | ... | ... |
| 1 | +<ui:component xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" | |
| 2 | + xmlns:h="http://java.sun.com/jsf/html"> | |
| 3 | + <div> | |
| 4 | + <ul> | |
| 5 | + <li><h:outputLink value="#{facesContext.externalContext.requestContextPath}/focus_1.jsf">Example 1</h:outputLink></li> | |
| 6 | + <li><h:outputLink value="#{facesContext.externalContext.requestContextPath}/focus_2.jsf">Example 2</h:outputLink></li> | |
| 7 | + <li><h:outputLink value="#{facesContext.externalContext.requestContextPath}/focus_3.jsf">Example 3</h:outputLink></li> | |
| 8 | + <li><h:outputLink value="#{facesContext.externalContext.requestContextPath}/focus_4.jsf">Example 4</h:outputLink></li> | |
| 9 | + <li><h:outputLink value="#{facesContext.externalContext.requestContextPath}/focus_5.jsf">Example 5</h:outputLink></li> | |
| 10 | + <li><h:outputLink value="#{facesContext.externalContext.requestContextPath}/focus_6.jsf">Example 6</h:outputLink></li> | |
| 11 | + <li><h:outputLink value="#{facesContext.externalContext.requestContextPath}/focus_7.jsf">Example 7</h:outputLink></li> | |
| 12 | + </ul> | |
| 13 | + </div> | |
| 14 | +</ui:component> | ... | ... |
samples/gmapMarker-sample/pom.xml
0 → 100644
| 1 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 2 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |
| 3 | + <parent> | |
| 4 | + <groupId>org.richfaces.sandbox.bernard</groupId> | |
| 5 | + <artifactId>parent</artifactId> | |
| 6 | + <version>3.3.4-SNAPSHOT</version> | |
| 7 | + <relativePath>../pom.xml</relativePath> | |
| 8 | + </parent> | |
| 9 | + <modelVersion>4.0.0</modelVersion> | |
| 10 | + <groupId>org.richfaces</groupId> | |
| 11 | + <artifactId>gmapMarker-sample</artifactId> | |
| 12 | + <packaging>war</packaging> | |
| 13 | + <name>gmapMarker-sample Maven Webapp</name> | |
| 14 | + <build> | |
| 15 | + <finalName>${project.artifactId}</finalName> | |
| 16 | + </build> | |
| 17 | + <dependencies> | |
| 18 | + <dependency> | |
| 19 | + <groupId>org.richfaces.ui</groupId> | |
| 20 | + <artifactId>core</artifactId> | |
| 21 | + <version>${project.version}</version> | |
| 22 | + </dependency> | |
| 23 | + <dependency> | |
| 24 | + <groupId>org.richfaces.ui</groupId> | |
| 25 | + <artifactId>richfaces-ui</artifactId> | |
| 26 | + </dependency> | |
| 27 | + <dependency> | |
| 28 | + <groupId>com.uwyn</groupId> | |
| 29 | + <artifactId>jhighlight</artifactId> | |
| 30 | + <version>1.0</version> | |
| 31 | + </dependency> | |
| 32 | + <dependency> | |
| 33 | + <groupId>org.richfaces.sandbox.ui</groupId> | |
| 34 | + <artifactId>gmapMarker</artifactId> | |
| 35 | + <version>${project.version}</version> | |
| 36 | + </dependency> | |
| 37 | + </dependencies> | |
| 38 | +</project> | ... | ... |
| 1 | +<jboss-deployment-structure> | |
| 2 | + <deployment> | |
| 3 | + <exclusions> | |
| 4 | + <module name="javax.faces.api" slot="main"/> | |
| 5 | + <module name="com.sun.jsf-impl" slot="main"/> | |
| 6 | + </exclusions> | |
| 7 | + <dependencies> | |
| 8 | + <module name="org.apache.commons.logging"/> | |
| 9 | + <module name="org.apache.commons.collections"/> | |
| 10 | + <module name="org.apache.commons.beanutils"/> | |
| 11 | + <module name="javax.faces.api" slot="1.2"/> | |
| 12 | + <module name="com.sun.jsf-impl" slot="1.2"/> | |
| 13 | + </dependencies> | |
| 14 | + </deployment> | |
| 15 | +</jboss-deployment-structure> | |
| 16 | + | ... | ... |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" | |
| 3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 4 | + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> | |
| 5 | + <description>Richfaces gmapMarker Sample</description> | |
| 6 | + <display-name>gmapMarker-sample</display-name> | |
| 7 | + <context-param> | |
| 8 | + <param-name>javax.faces.DEFAULT_SUFFIX</param-name> | |
| 9 | + <param-value>.xhtml</param-value> | |
| 10 | + </context-param> | |
| 11 | + <context-param> | |
| 12 | + <param-name>facelets.REFRESH_PERIOD</param-name> | |
| 13 | + <param-value>2</param-value> | |
| 14 | + </context-param> | |
| 15 | + <context-param> | |
| 16 | + <param-name>facelets.DEVELOPMENT</param-name> | |
| 17 | + <param-value>true</param-value> | |
| 18 | + </context-param> | |
| 19 | + <context-param> | |
| 20 | + <param-name>javax.faces.STATE_SAVING_METHOD</param-name> | |
| 21 | + <param-value>client</param-value> | |
| 22 | + </context-param> | |
| 23 | + <context-param> | |
| 24 | + <param-name>com.sun.faces.validateXml</param-name> | |
| 25 | + <param-value>true</param-value> | |
| 26 | + </context-param> | |
| 27 | + <context-param> | |
| 28 | + <param-name>com.sun.faces.verifyObjects</param-name> | |
| 29 | + <param-value>true</param-value> | |
| 30 | + </context-param> | |
| 31 | + <context-param> | |
| 32 | + <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name> | |
| 33 | + <param-value>com.sun.facelets.FaceletViewHandler</param-value> | |
| 34 | + </context-param> | |
| 35 | + <context-param> | |
| 36 | + <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name> | |
| 37 | + <param-value>false</param-value> | |
| 38 | + </context-param> | |
| 39 | + <filter> | |
| 40 | + <display-name>Ajax4jsf Filter</display-name> | |
| 41 | + <filter-name>ajax4jsf</filter-name> | |
| 42 | + <filter-class>org.ajax4jsf.Filter</filter-class> | |
| 43 | + </filter> | |
| 44 | + <filter-mapping> | |
| 45 | + <filter-name>ajax4jsf</filter-name> | |
| 46 | + <servlet-name>Faces Servlet</servlet-name> | |
| 47 | + <dispatcher>FORWARD</dispatcher> | |
| 48 | + <dispatcher>REQUEST</dispatcher> | |
| 49 | + <dispatcher>INCLUDE</dispatcher> | |
| 50 | + </filter-mapping> | |
| 51 | + <servlet> | |
| 52 | + <servlet-name>Faces Servlet</servlet-name> | |
| 53 | + <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> | |
| 54 | + <load-on-startup>1</load-on-startup> | |
| 55 | + </servlet> | |
| 56 | + <servlet-mapping> | |
| 57 | + <servlet-name>Faces Servlet</servlet-name> | |
| 58 | + <url-pattern>*.jsf</url-pattern> | |
| 59 | + </servlet-mapping> | |
| 60 | + <login-config> | |
| 61 | + <auth-method>BASIC</auth-method> | |
| 62 | + </login-config> | |
| 63 | + <listener> | |
| 64 | + | |
| 65 | + <listener-class>com.sun.faces.config.ConfigureListener</listener-class> | |
| 66 | + | |
| 67 | + </listener> | |
| 68 | +</web-app> | ... | ... |
| 1 | +<ui:component xmlns="http://www.w3.org/1999/xhtml" | |
| 2 | + xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 3 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 4 | + xmlns:h="http://java.sun.com/jsf/html"> | |
| 5 | + <div> | |
| 6 | + <ul> | |
| 7 | + <!--<li><h:outputLink value="#{facesContext.externalContext.requestContextPath}/sample_1.jsf">Example 1</h:outputLink></li>--> | |
| 8 | + </ul> | |
| 9 | + </div> | |
| 10 | +</ui:component> | ... | ... |
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 4 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 5 | + xmlns:h="http://java.sun.com/jsf/html" | |
| 6 | + xmlns:sandbox="http://richfaces.org/sandbox/gmapMarker" | |
| 7 | + xmlns:a4j="http://richfaces.org/a4j" | |
| 8 | + xmlns:rich="http://richfaces.org/rich"> | |
| 9 | +<head> | |
| 10 | + <title>gmapMarker sample</title> | |
| 11 | + <style type="text/css"> | |
| 12 | + #calendar { | |
| 13 | + float: right; | |
| 14 | + width: 200px; | |
| 15 | + } | |
| 16 | + </style> | |
| 17 | +</head> | |
| 18 | + | |
| 19 | +<body> | |
| 20 | +<ui:include src="menu.xhtml"/> | |
| 21 | + | |
| 22 | + | |
| 23 | +<fieldset> | |
| 24 | + <legend>Add marker with JavaScript</legend> | |
| 25 | + <form action="#"> | |
| 26 | + Latitude <input type="text" id="lat"/> | |
| 27 | + Longitude <input type="text" id="lng"/> | |
| 28 | + Title <input type="text" id="title"/> | |
| 29 | + Draggable <input type="checkbox" id="draggable"/> | |
| 30 | + <input type="button" value="Add marker" onclick="addMarker()"/> | |
| 31 | + </form> | |
| 32 | + <script type="text/javascript"> | |
| 33 | + function addMarker() { | |
| 34 | + RichFaces.addGmapMarker('gmap', | |
| 35 | + document.getElementById('lat').value, | |
| 36 | + document.getElementById('lng').value, | |
| 37 | + { | |
| 38 | + title:document.getElementById('title').value, | |
| 39 | + draggable:document.getElementById('draggable').checked | |
| 40 | + }); | |
| 41 | + } | |
| 42 | + </script> | |
| 43 | +</fieldset> | |
| 44 | +<rich:gmap gmapVar="gmap" lat="50" lng="32" zoom="2" style="width:100%" | |
| 45 | + gmapKey="ABQIAAAAJRoUgtOKQgPPTRmZNJcFRBQ03jzigXrzGoTeBBI15yVgqSobkRSrWVFeSVl33ncpBGX7XrKdYdUaCg"> | |
| 46 | + <sandbox:gmapMarker latitude="50" longitude="32" title="Ukraine" autoPan="false" bounceGravity=".5" | |
| 47 | + draggable="true" onclick="alert(marker.getTitle()+'('+latlng.lat()+';'+latlng.lng()+')')" | |
| 48 | + clickable="true"/> | |
| 49 | + <sandbox:gmapMarker latitude="20" longitude="52" title="Saudi Arabia - click me!" draggable="true" | |
| 50 | + icon="https://issues.jboss.org/secure/attachment/12326770/richfaces_icon_64px.gif" | |
| 51 | + iconWidth="32" iconHeight="32"> | |
| 52 | + <f:facet name="infoWindow"> | |
| 53 | + <h:panelGroup> | |
| 54 | + <h:outputText value="Gubik"/><br/> | |
| 55 | + <h:graphicImage value="http://in.relation.to/service/File/11358" width="300"/> | |
| 56 | + </h:panelGroup> | |
| 57 | + </f:facet> | |
| 58 | + </sandbox:gmapMarker> | |
| 59 | +</rich:gmap> | |
| 60 | + | |
| 61 | +<script type="text/javascript"> | |
| 62 | + RichFaces.addGmapMarker('gmap', 10.0, 22.0, {title:'Toro'}); | |
| 63 | +</script> | |
| 64 | + | |
| 65 | + | |
| 66 | +<rich:insert src="/sample_1.xhtml" highlight="html"/> | |
| 67 | + | |
| 68 | +</body> | |
| 69 | +</html> | ... | ... |
samples/imageSelectTool-sample/pom.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 3 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |
| 4 | + <parent> | |
| 5 | + <groupId>org.richfaces.sandbox.bernard</groupId> | |
| 6 | + <artifactId>parent</artifactId> | |
| 7 | + <version>3.3.4-SNAPSHOT</version> | |
| 8 | + <relativePath>../pom.xml</relativePath> | |
| 9 | + </parent> | |
| 10 | + <modelVersion>4.0.0</modelVersion> | |
| 11 | + <groupId>org.richfaces.sandbox.ui</groupId> | |
| 12 | + <artifactId>imageSelectTool-sample</artifactId> | |
| 13 | + <packaging>war</packaging> | |
| 14 | + <name>imageSelectTool-sample Maven Webapp</name> | |
| 15 | + <build> | |
| 16 | + <finalName>${project.artifactId}</finalName> | |
| 17 | + </build> | |
| 18 | + <dependencies> | |
| 19 | + <dependency> | |
| 20 | + <groupId>org.richfaces.ui</groupId> | |
| 21 | + <artifactId>richfaces-ui</artifactId> | |
| 22 | + </dependency> | |
| 23 | + <dependency> | |
| 24 | + <groupId>org.richfaces.sandbox.ui</groupId> | |
| 25 | + <artifactId>imageSelectTool</artifactId> | |
| 26 | + <version>${project.version}</version> | |
| 27 | + </dependency> | |
| 28 | + <dependency> | |
| 29 | + <groupId>com.uwyn</groupId> | |
| 30 | + <artifactId>jhighlight</artifactId> | |
| 31 | + <version>1.0</version> | |
| 32 | + </dependency> | |
| 33 | + </dependencies> | |
| 34 | +</project> | |
| \ No newline at end of file | ... | ... |
samples/imageSelectTool-sample/src/main/java/org/richfaces/sandbox/imageSelectTool/Cropper.java
0 → 100644
| 1 | +package org.richfaces.sandbox.imageSelectTool; | |
| 2 | + | |
| 3 | +import java.awt.*; | |
| 4 | + | |
| 5 | +public class Cropper { | |
| 6 | + | |
| 7 | + private String srcImage = "images/sample.jpg"; | |
| 8 | + private Double aspectRatio; | |
| 9 | + private String backgroundColor; | |
| 10 | + private Double backgroundOpacity; | |
| 11 | + private Integer maxHeight; | |
| 12 | + private Integer maxWidth; | |
| 13 | + private Integer minHeight; | |
| 14 | + private Integer minWidth; | |
| 15 | + private Rectangle selection; | |
| 16 | + | |
| 17 | + public String getSrcImage() { | |
| 18 | + return srcImage; | |
| 19 | + } | |
| 20 | + | |
| 21 | + public void setSrcImage(String srcImage) { | |
| 22 | + this.srcImage = srcImage; | |
| 23 | + } | |
| 24 | + | |
| 25 | + public Double getAspectRatio() { | |
| 26 | + return aspectRatio; | |
| 27 | + } | |
| 28 | + | |
| 29 | + public void setAspectRatio(Double aspectRatio) { | |
| 30 | + this.aspectRatio = aspectRatio; | |
| 31 | + } | |
| 32 | + | |
| 33 | + public String getBackgroundColor() { | |
| 34 | + return backgroundColor; | |
| 35 | + } | |
| 36 | + | |
| 37 | + public void setBackgroundColor(String backgroundColor) { | |
| 38 | + this.backgroundColor = backgroundColor; | |
| 39 | + } | |
| 40 | + | |
| 41 | + public Double getBackgroundOpacity() { | |
| 42 | + return backgroundOpacity; | |
| 43 | + } | |
| 44 | + | |
| 45 | + public void setBackgroundOpacity(Double backgroundOpacity) { | |
| 46 | + this.backgroundOpacity = backgroundOpacity; | |
| 47 | + } | |
| 48 | + | |
| 49 | + public Integer getMaxHeight() { | |
| 50 | + return maxHeight; | |
| 51 | + } | |
| 52 | + | |
| 53 | + public void setMaxHeight(Integer maxHeight) { | |
| 54 | + this.maxHeight = maxHeight; | |
| 55 | + } | |
| 56 | + | |
| 57 | + public Integer getMaxWidth() { | |
| 58 | + return maxWidth; | |
| 59 | + } | |
| 60 | + | |
| 61 | + public void setMaxWidth(Integer maxWidth) { | |
| 62 | + this.maxWidth = maxWidth; | |
| 63 | + } | |
| 64 | + | |
| 65 | + public Integer getMinHeight() { | |
| 66 | + return minHeight; | |
| 67 | + } | |
| 68 | + | |
| 69 | + public void setMinHeight(Integer minHeight) { | |
| 70 | + this.minHeight = minHeight; | |
| 71 | + } | |
| 72 | + | |
| 73 | + public Integer getMinWidth() { | |
| 74 | + return minWidth; | |
| 75 | + } | |
| 76 | + | |
| 77 | + public void setMinWidth(Integer minWidth) { | |
| 78 | + this.minWidth = minWidth; | |
| 79 | + } | |
| 80 | + | |
| 81 | + public Rectangle getSelection() { | |
| 82 | + return selection; | |
| 83 | + } | |
| 84 | + | |
| 85 | + public void setSelection(Rectangle selection) { | |
| 86 | + this.selection = selection; | |
| 87 | + } | |
| 88 | +} | ... | ... |
| 1 | +<?xml version="1.0"?> | |
| 2 | +<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" | |
| 3 | + "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"> | |
| 4 | +<faces-config> | |
| 5 | + <managed-bean> | |
| 6 | + <managed-bean-name>cropper</managed-bean-name> | |
| 7 | + <managed-bean-class>org.richfaces.sandbox.imageSelectTool.Cropper</managed-bean-class> | |
| 8 | + <managed-bean-scope>session</managed-bean-scope> | |
| 9 | + </managed-bean> | |
| 10 | +</faces-config> | |
| 11 | + | ... | ... |
| 1 | +<jboss-deployment-structure> | |
| 2 | + <deployment> | |
| 3 | + <exclusions> | |
| 4 | + <module name="javax.faces.api" slot="main"/> | |
| 5 | + <module name="com.sun.jsf-impl" slot="main"/> | |
| 6 | + </exclusions> | |
| 7 | + <dependencies> | |
| 8 | + <module name="org.apache.commons.logging"/> | |
| 9 | + <module name="org.apache.commons.collections"/> | |
| 10 | + <module name="org.apache.commons.beanutils"/> | |
| 11 | + <module name="javax.faces.api" slot="1.2"/> | |
| 12 | + <module name="com.sun.jsf-impl" slot="1.2"/> | |
| 13 | + </dependencies> | |
| 14 | + </deployment> | |
| 15 | +</jboss-deployment-structure> | |
| 16 | + | ... | ... |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 3 | + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> | |
| 4 | + <description>Richfaces imageSelectTool Sample</description> | |
| 5 | + <display-name>imageSelectTool-sample</display-name> | |
| 6 | + <context-param> | |
| 7 | + <param-name>javax.faces.DEFAULT_SUFFIX</param-name> | |
| 8 | + <param-value>.xhtml</param-value> | |
| 9 | + </context-param> | |
| 10 | + <context-param> | |
| 11 | + <param-name>facelets.REFRESH_PERIOD</param-name> | |
| 12 | + <param-value>2</param-value> | |
| 13 | + </context-param> | |
| 14 | + <context-param> | |
| 15 | + <param-name>facelets.DEVELOPMENT</param-name> | |
| 16 | + <param-value>true</param-value> | |
| 17 | + </context-param> | |
| 18 | + <context-param> | |
| 19 | + <param-name>javax.faces.STATE_SAVING_METHOD</param-name> | |
| 20 | + <param-value>server</param-value> | |
| 21 | + </context-param> | |
| 22 | + <context-param> | |
| 23 | + <param-name>com.sun.faces.validateXml</param-name> | |
| 24 | + <param-value>true</param-value> | |
| 25 | + </context-param> | |
| 26 | + <context-param> | |
| 27 | + <param-name>com.sun.faces.verifyObjects</param-name> | |
| 28 | + <param-value>false</param-value> | |
| 29 | + </context-param> | |
| 30 | + <context-param> | |
| 31 | + <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name> | |
| 32 | + <param-value>com.sun.facelets.FaceletViewHandler</param-value> | |
| 33 | + </context-param> | |
| 34 | + <context-param> | |
| 35 | + <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name> | |
| 36 | + <param-value>false</param-value> | |
| 37 | + </context-param> | |
| 38 | + <context-param> | |
| 39 | + <param-name>org.richfaces.SKIN</param-name> | |
| 40 | + <param-value>blueSky</param-value> | |
| 41 | + </context-param> | |
| 42 | + <context-param> | |
| 43 | + <param-name>org.richfaces.CONTROL_SKINNING_LEVEL</param-name> | |
| 44 | + <param-value>extended</param-value> | |
| 45 | + </context-param> | |
| 46 | + <filter> | |
| 47 | + <display-name>Ajax4jsf Filter</display-name> | |
| 48 | + <filter-name>ajax4jsf</filter-name> | |
| 49 | + <filter-class>org.ajax4jsf.Filter</filter-class> | |
| 50 | + <init-param> | |
| 51 | + <param-name>enable-cache</param-name> | |
| 52 | + <param-value>false</param-value> | |
| 53 | + </init-param> | |
| 54 | + </filter> | |
| 55 | + <filter-mapping> | |
| 56 | + <filter-name>ajax4jsf</filter-name> | |
| 57 | + <servlet-name>Faces Servlet</servlet-name> | |
| 58 | + <dispatcher>FORWARD</dispatcher> | |
| 59 | + <dispatcher>REQUEST</dispatcher> | |
| 60 | + <dispatcher>INCLUDE</dispatcher> | |
| 61 | + </filter-mapping> | |
| 62 | + <servlet> | |
| 63 | + <servlet-name>Faces Servlet</servlet-name> | |
| 64 | + <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> | |
| 65 | + <load-on-startup>1</load-on-startup> | |
| 66 | + </servlet> | |
| 67 | + <servlet-mapping> | |
| 68 | + <servlet-name>Faces Servlet</servlet-name> | |
| 69 | + <url-pattern>*.jsf</url-pattern> | |
| 70 | + </servlet-mapping> | |
| 71 | + <login-config> | |
| 72 | + <auth-method>BASIC</auth-method> | |
| 73 | + </login-config> | |
| 74 | +</web-app> | ... | ... |
224 KB
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | +<html xmlns="http://www.w3.org/1999/xhtml" | |
| 4 | + xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 5 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 6 | + xmlns:h="http://java.sun.com/jsf/html" | |
| 7 | + xmlns:a4j="http://richfaces.org/a4j" | |
| 8 | + xmlns:rich="http://richfaces.org/rich" | |
| 9 | + xmlns:imageSelectTool="http://richfaces.org/sandbox/imageSelectTool" | |
| 10 | + > | |
| 11 | +<head> | |
| 12 | + <title>ImageSelectTool sample</title> | |
| 13 | + <style type="text/css"> | |
| 14 | + input.short { | |
| 15 | + width: 30px; | |
| 16 | + } | |
| 17 | + </style> | |
| 18 | +</head> | |
| 19 | +<body class="rich-container"> | |
| 20 | +<ui:include src="menu.xhtml"/> | |
| 21 | + | |
| 22 | +<p> | |
| 23 | + | |
| 24 | +</p> | |
| 25 | +<rich:messages ajaxRendered="true"/> | |
| 26 | +<h:panelGrid columns="3"> | |
| 27 | + <h:panelGroup> | |
| 28 | + <h:form> | |
| 29 | + <h:panelGrid columns="2"> | |
| 30 | + <h:outputLabel value="srcImage" for="srcImage"/> | |
| 31 | + <h:inputText value="#{cropper.srcImage}" id="srcImage"/> | |
| 32 | + <h:outputLabel value="minWidth" for="minWidth"/> | |
| 33 | + <h:inputText value="#{cropper.minWidth}" id="minWidth"/> | |
| 34 | + <h:outputLabel value="minHeight" for="minHeight"/> | |
| 35 | + <h:inputText value="#{cropper.minHeight}" id="minHeight"/> | |
| 36 | + <h:outputLabel value="maxWidth" for="maxWidth"/> | |
| 37 | + <h:inputText value="#{cropper.maxWidth}" id="maxWidth"/> | |
| 38 | + <h:outputLabel value="maxHeight" for="maxHeight"/> | |
| 39 | + <h:inputText value="#{cropper.maxHeight}" id="maxHeight"/> | |
| 40 | + <h:outputLabel value="backgroundColor" for="backgroundColor"/> | |
| 41 | + <h:inputText value="#{cropper.backgroundColor}" id="backgroundColor"/> | |
| 42 | + <h:outputLabel value="backgroundOpacity" for="backgroundOpacity"/> | |
| 43 | + <h:inputText value="#{cropper.backgroundOpacity}" id="backgroundOpacity"/> | |
| 44 | + <h:outputLabel value="aspectRatio" for="aspectRatio"/> | |
| 45 | + <h:inputText value="#{cropper.aspectRatio}" id="aspectRatio"/> | |
| 46 | + </h:panelGrid> | |
| 47 | + <h:commandButton value="Submit"/> | |
| 48 | + </h:form> | |
| 49 | + | |
| 50 | + <div id="coords"/> | |
| 51 | + <input type="text" id="x" class="short"/> | |
| 52 | + <input type="text" id="y" class="short"/> | |
| 53 | + <input type="text" id="width" class="short"/> | |
| 54 | + <input type="text" id="height" class="short"/> | |
| 55 | + <input type="button" id="setSelection" value="Set selection"/> | |
| 56 | + <input type="button" id="animateTo" value="Animate to"/> | |
| 57 | + | |
| 58 | + <h:form> | |
| 59 | + | |
| 60 | + </h:form> | |
| 61 | + </h:panelGroup> | |
| 62 | + | |
| 63 | + | |
| 64 | + <h:graphicImage value="#{cropper.srcImage}" id="image"/> | |
| 65 | + | |
| 66 | + <rich:panel id="result"> | |
| 67 | + #{cropper.selection} | |
| 68 | + </rich:panel> | |
| 69 | +</h:panelGrid> | |
| 70 | +<script type="text/javascript"> | |
| 71 | + function updateInputs(event) { | |
| 72 | + jQuery('#coords').html('selected:' + event.x + ';' + event.y + ';' + event.width + ';' + event.height); | |
| 73 | + jQuery('#x').val(event.x); | |
| 74 | + jQuery('#y').val(event.y); | |
| 75 | + jQuery('#width').val(event.width); | |
| 76 | + jQuery('#height').val(event.height); | |
| 77 | + } | |
| 78 | + jQuery('#setSelection').click(function() { | |
| 79 | + selector.setSelection( | |
| 80 | + parseInt(jQuery('#x').val()), | |
| 81 | + parseInt(jQuery('#y').val()), | |
| 82 | + parseInt(jQuery('#width').val()), | |
| 83 | + parseInt(jQuery('#height').val()) | |
| 84 | + ); | |
| 85 | + }); | |
| 86 | + jQuery('#animateTo').click(function() { | |
| 87 | + selector.animateTo( | |
| 88 | + parseInt(jQuery('#x').val()), | |
| 89 | + parseInt(jQuery('#y').val()), | |
| 90 | + parseInt(jQuery('#width').val()), | |
| 91 | + parseInt(jQuery('#height').val()) | |
| 92 | + ); | |
| 93 | + }); | |
| 94 | +</script> | |
| 95 | +<h:form> | |
| 96 | + <imageSelectTool:imageSelectTool id="selector" | |
| 97 | + for="image" | |
| 98 | + var="selector" | |
| 99 | + value="#{cropper.selection}" | |
| 100 | + aspectRatio="#{cropper.aspectRatio}" | |
| 101 | + backgroundColor="#{cropper.backgroundColor}" | |
| 102 | + backgroundOpacity="#{cropper.backgroundOpacity}" | |
| 103 | + maxHeight="#{cropper.maxHeight}" | |
| 104 | + maxWidth="#{cropper.maxWidth}" | |
| 105 | + minWidth="#{cropper.minWidth}" | |
| 106 | + minHeight="#{cropper.minHeight}" | |
| 107 | + onchange="updateInputs(event);" | |
| 108 | + onselect="updateInputs(event);reRenderResult()"/> | |
| 109 | + <a4j:jsFunction name="reRenderResult" reRender="result"/> | |
| 110 | + <a4j:commandButton value="ReRender image" reRender="image"/> | |
| 111 | + <a4j:commandButton value="ReRender imageSelectTool" reRender="selector"/> | |
| 112 | + <a4j:commandButton value="ReRender both" reRender="selector,image"/> | |
| 113 | +</h:form> | |
| 114 | +<rich:insert src="/index.xhtml" highlight="xhtml" rendered="#{showSource!=false}"/> | |
| 115 | + | |
| 116 | +</body> | |
| 117 | +</html> | ... | ... |
| 1 | +<ui:component xmlns="http://www.w3.org/1999/xhtml" | |
| 2 | + xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 3 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 4 | + xmlns:h="http://java.sun.com/jsf/html"> | |
| 5 | + <h:panelGrid columns="3"> | |
| 6 | + <h:outputLink value="#{facesContext.externalContext.requestContextPath}/index.jsf">Example 1</h:outputLink> | |
| 7 | + </h:panelGrid> | |
| 8 | +</ui:component> | ... | ... |
samples/jQueryPlugin-sample/pom.xml
0 → 100644
| 1 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 2 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |
| 3 | + <parent> | |
| 4 | + <groupId>org.richfaces.sandbox.bernard</groupId> | |
| 5 | + <artifactId>parent</artifactId> | |
| 6 | + <version>3.3.4-SNAPSHOT</version> | |
| 7 | + <relativePath>../pom.xml</relativePath> | |
| 8 | + </parent> | |
| 9 | + <modelVersion>4.0.0</modelVersion> | |
| 10 | + <groupId>org.richfaces</groupId> | |
| 11 | + <artifactId>jQueryPlugin-sample</artifactId> | |
| 12 | + <packaging>war</packaging> | |
| 13 | + <name>jQueryPlugin-sample Maven Webapp</name> | |
| 14 | + <build> | |
| 15 | + <finalName>${project.artifactId}</finalName> | |
| 16 | + </build> | |
| 17 | + <dependencies> | |
| 18 | + <dependency> | |
| 19 | + <groupId>org.richfaces.ui</groupId> | |
| 20 | + <artifactId>core</artifactId> | |
| 21 | + <version>${project.version}</version> | |
| 22 | + </dependency> | |
| 23 | + <dependency> | |
| 24 | + <groupId>org.richfaces.ui</groupId> | |
| 25 | + <artifactId>richfaces-ui</artifactId> | |
| 26 | + </dependency> | |
| 27 | + <dependency> | |
| 28 | + <groupId>com.uwyn</groupId> | |
| 29 | + <artifactId>jhighlight</artifactId> | |
| 30 | + <version>1.0</version> | |
| 31 | + </dependency> | |
| 32 | + <dependency> | |
| 33 | + <groupId>org.richfaces.sandbox.ui</groupId> | |
| 34 | + <artifactId>jQueryPlugin</artifactId> | |
| 35 | + <version>${project.version}</version> | |
| 36 | + </dependency> | |
| 37 | + </dependencies> | |
| 38 | +</project> | ... | ... |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<f:template xmlns:f='http:/jsf.exadel.com/template' | |
| 3 | +xmlns:u='http:/jsf.exadel.com/template/util' | |
| 4 | +xmlns="http://www.w3.org/1999/xhtml" > | |
| 5 | + | |
| 6 | + <f:verbatim> | |
| 7 | +/* Notice----------------------------------*/ | |
| 8 | +.rf-ny { | |
| 9 | + top: 18px; | |
| 10 | + right: 18px; | |
| 11 | + position: absolute; | |
| 12 | + height: auto; | |
| 13 | + /* Ensure that the notices are on top of everything else. */ | |
| 14 | + z-index: 9999; | |
| 15 | +} | |
| 16 | + </f:verbatim> | |
| 17 | + <u:selector name=".rf-ny-info"> | |
| 18 | + <u:style name="color" skin="generalTextColor"/> | |
| 19 | + </u:selector> | |
| 20 | + <f:verbatim> | |
| 21 | +.rf-ny-warn { | |
| 22 | + color:orange; | |
| 23 | +} | |
| 24 | +.rf-ny-error { | |
| 25 | + color:red; | |
| 26 | +} | |
| 27 | +.rf-ny-fatal { | |
| 28 | + color:red; | |
| 29 | + font-weight:bold; | |
| 30 | +} | |
| 31 | +/* This hides position: fixed from IE6, which doesn't understand it. */ | |
| 32 | +html > body .rf-ny { | |
| 33 | + position: fixed; | |
| 34 | +} | |
| 35 | + </f:verbatim> | |
| 36 | + <u:selector name=".rf-ny .rf-ny-sh"> | |
| 37 | + <u:style name="margin" value="0"/> | |
| 38 | + <u:style name="padding" value="8px"/> | |
| 39 | + <u:style name="background-color" skin="headerBackgroundColor"/> | |
| 40 | + <u:style name="color" skin="headerTextColor"/> | |
| 41 | + <u:style name="opcity" value=".3"/> | |
| 42 | + <u:style name="-moz-border-radius" value="8px"/> | |
| 43 | + <u:style name="-webkit-border-radius" value="8px"/> | |
| 44 | + <u:style name="border-radius" value="8px"/> | |
| 45 | + <u:style name="position" value="absolute"/> | |
| 46 | + <u:style name="z-index" value="-1"/> | |
| 47 | + <u:style name="top" value=".1em"/> | |
| 48 | + <u:style name="left" value=".1em"/> | |
| 49 | + <u:style name="bottom" value="-.2em"/> | |
| 50 | + <u:style name="right" value="-.2em"/> | |
| 51 | + </u:selector> | |
| 52 | + <u:selector name=".rf-ny-co"> | |
| 53 | + <u:style name="height" value="100%"/> | |
| 54 | + <u:style name="padding" value=".8em"/> | |
| 55 | + <u:style name="border-width" value="1px"/> | |
| 56 | + <u:style name="border-style" value="solid"/> | |
| 57 | + <u:style name="border-color" value="panelBorderColor"/> | |
| 58 | + <u:style name="background-color" skin="generalBackgroundColor"/> | |
| 59 | + <u:style name="color" skin="panelTextColor"/> | |
| 60 | + <u:style name="-moz-border-radius" value="4px"/> | |
| 61 | + <u:style name="-webkit-border-radius" value="4px"/> | |
| 62 | + <u:style name="border-radius" value="4px"/> | |
| 63 | + </u:selector> | |
| 64 | + <f:verbatim> | |
| 65 | +.rf-ny-co-hover { | |
| 66 | + background:red; | |
| 67 | +} | |
| 68 | +.rf-ny-cl { | |
| 69 | + float: right; | |
| 70 | + margin-left: .2em; | |
| 71 | +} | |
| 72 | + </f:verbatim> | |
| 73 | + <u:selector name=".rf-ny-cl-ic"> | |
| 74 | + <u:style name="display" value="block"/> | |
| 75 | + <u:style name="width" value="11px"/> | |
| 76 | + <u:style name="height" value="11px"/> | |
| 77 | + <u:style name="background-image"> | |
| 78 | + <f:resource f:key="org.richfaces.renderkit.html.images.CancelControlIcon"/> | |
| 79 | + </u:style> | |
| 80 | + </u:selector> | |
| 81 | + <f:verbatim> | |
| 82 | +.rf-ny-ti { | |
| 83 | + display: block; | |
| 84 | + font-size: 1.2em; | |
| 85 | + font-weight: bold; | |
| 86 | + margin-bottom: .4em; | |
| 87 | +} | |
| 88 | +.rf-ny-te { | |
| 89 | + display: block; | |
| 90 | +} | |
| 91 | +.rf-ny-ic { | |
| 92 | + display: none; | |
| 93 | + float: left; | |
| 94 | + margin-right: .2em; | |
| 95 | + width:32px; | |
| 96 | + height:32px; | |
| 97 | +} | |
| 98 | +/* History Pulldown----------------------------------*/ | |
| 99 | + </f:verbatim> | |
| 100 | + <u:selector name=".rf-ny-hc"> | |
| 101 | + <u:style name="background-color" skin="headerBackgroundColor"/> | |
| 102 | + <u:style name="border-color" skin="headerBackgroundColor"/> | |
| 103 | + <u:style name="font-size" skin="headerSizeFont"/> | |
| 104 | + <u:style name="color" skin="headerTextColor"/> | |
| 105 | + <u:style name="font-family" skin="headerFamilyFont"/> | |
| 106 | + <u:style name="background-image"> | |
| 107 | + <f:resource f:key="org.richfaces.renderkit.html.GradientA"/> | |
| 108 | + </u:style> | |
| 109 | + <u:style name="font-weight" value="normal"/> | |
| 110 | + <u:style name="color" skin="panelTextColor"/> | |
| 111 | + <u:style name="-moz-border-radius-bottomleft" value="4px"/> | |
| 112 | + <u:style name="-webkit-border-bottom-left-radius" value="4px"/> | |
| 113 | + <u:style name="border-bottom-left-radius" value="4px"/> | |
| 114 | + <u:style name="-moz-border-radius-bottomright" value="4px"/> | |
| 115 | + <u:style name="-webkit-border-bottom-right-radius" value="4px"/> | |
| 116 | + <u:style name="border-bottom-right-radius" value="4px"/> | |
| 117 | + <u:style name="position" value="absolute"/> | |
| 118 | + <u:style name="top" value="0"/> | |
| 119 | + <u:style name="right" value="18px"/> | |
| 120 | + <u:style name="width" value="70px"/> | |
| 121 | + <u:style name="z-index" value="10000"/> | |
| 122 | + </u:selector> | |
| 123 | + <f:verbatim> | |
| 124 | +.rf-ny-hc .rf-ny-hh { | |
| 125 | + padding: 2px; | |
| 126 | +} | |
| 127 | +.rf-ny-hc button { | |
| 128 | + cursor: pointer; | |
| 129 | + display: block; | |
| 130 | + width: 100%; | |
| 131 | +} | |
| 132 | +.rc-ny-ha { | |
| 133 | + -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; | |
| 134 | +} | |
| 135 | + </f:verbatim> | |
| 136 | + <u:selector name=".rf-ny-hc .rf-ny-hp"> | |
| 137 | + <u:style name="display" value="block"/> | |
| 138 | + <u:style name="margin" value="0 auto"/> | |
| 139 | + <u:style name="width" value="16px"/> | |
| 140 | + <u:style name="height" value="16px"/> | |
| 141 | + <u:style name="background-color" skin="panelTextColor"/> | |
| 142 | + <u:style name="background-image"> | |
| 143 | + <f:resource f:key="/org/richfaces/renderkit/html/images/triangleIconDown.png"/> | |
| 144 | + </u:style> | |
| 145 | + </u:selector> | |
| 146 | + <u:selector name=".rc-ny-hl"> | |
| 147 | + <u:style name="border-color" skin="panelBorderColor"/> | |
| 148 | + <u:style name="background-color" skin="generalBackgroundColor"/> | |
| 149 | + <u:style name="font-weight" value="normal"/> | |
| 150 | + <u:style name="color" skin="panelTextColor"/> | |
| 151 | + <u:style name="-moz-border-radius" value="4px"/> | |
| 152 | + <u:style name="-webkit-border-radius" value="4px"/> | |
| 153 | + <u:style name="border-radius" value="4px"/> | |
| 154 | + </u:selector> | |
| 155 | + <u:selector name=".rf-ny-info .rf-ny-ic"> | |
| 156 | + <u:style name="display" value="block"/> | |
| 157 | + <u:style name="background-image"> | |
| 158 | + <f:resource f:key="/org/richfaces/renderkit/html/images/info.png"/> | |
| 159 | + </u:style> | |
| 160 | + </u:selector> | |
| 161 | + <u:selector name=".rf-ny-warn .rf-ny-ic"> | |
| 162 | + <u:style name="display" value="block"/> | |
| 163 | + <u:style name="background-image"> | |
| 164 | + <f:resource f:key="/org/richfaces/renderkit/html/images/warn.png"/> | |
| 165 | + </u:style> | |
| 166 | + </u:selector> | |
| 167 | + <u:selector name=".rf-ny-error .rf-ny-ic"> | |
| 168 | + <u:style name="display" value="block"/> | |
| 169 | + <u:style name="background-image"> | |
| 170 | + <f:resource f:key="/org/richfaces/renderkit/html/images/error.png"/> | |
| 171 | + </u:style> | |
| 172 | + </u:selector> | |
| 173 | + <u:selector name=".rf-ny-fatal .rf-ny-ic"> | |
| 174 | + <u:style name="display" value="block"/> | |
| 175 | + <u:style name="background-image"> | |
| 176 | + <f:resource f:key="/org/richfaces/renderkit/html/images/fatal.png"/> | |
| 177 | + </u:style> | |
| 178 | + </u:selector> | |
| 179 | +</f:template> | |
| \ No newline at end of file | ... | ... |
samples/jQueryPlugin-sample/src/main/resources/org/richfaces/renderkit/html/images/error.png
0 → 100644
1.97 KB
samples/jQueryPlugin-sample/src/main/resources/org/richfaces/renderkit/html/images/fatal.png
0 → 100644
2.41 KB
samples/jQueryPlugin-sample/src/main/resources/org/richfaces/renderkit/html/images/info.png
0 → 100644
4.49 KB
74 Bytes
samples/jQueryPlugin-sample/src/main/resources/org/richfaces/renderkit/html/images/warn.png
0 → 100644
1.38 KB
| 1 | +<jboss-deployment-structure> | |
| 2 | + <deployment> | |
| 3 | + <exclusions> | |
| 4 | + <module name="javax.faces.api" slot="main"/> | |
| 5 | + <module name="com.sun.jsf-impl" slot="main"/> | |
| 6 | + </exclusions> | |
| 7 | + <dependencies> | |
| 8 | + <module name="org.apache.commons.logging"/> | |
| 9 | + <module name="org.apache.commons.collections"/> | |
| 10 | + <module name="org.apache.commons.beanutils"/> | |
| 11 | + <module name="javax.faces.api" slot="1.2"/> | |
| 12 | + <module name="com.sun.jsf-impl" slot="1.2"/> | |
| 13 | + </dependencies> | |
| 14 | + </deployment> | |
| 15 | +</jboss-deployment-structure> | |
| 16 | + | ... | ... |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" | |
| 3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 4 | + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> | |
| 5 | + <description>Richfaces jQueryPlugin Sample</description> | |
| 6 | + <display-name>jQueryPlugin-sample</display-name> | |
| 7 | + <context-param> | |
| 8 | + <param-name>javax.faces.DEFAULT_SUFFIX</param-name> | |
| 9 | + <param-value>.xhtml</param-value> | |
| 10 | + </context-param> | |
| 11 | + <context-param> | |
| 12 | + <param-name>facelets.REFRESH_PERIOD</param-name> | |
| 13 | + <param-value>2</param-value> | |
| 14 | + </context-param> | |
| 15 | + <context-param> | |
| 16 | + <param-name>facelets.DEVELOPMENT</param-name> | |
| 17 | + <param-value>true</param-value> | |
| 18 | + </context-param> | |
| 19 | + <context-param> | |
| 20 | + <param-name>javax.faces.STATE_SAVING_METHOD</param-name> | |
| 21 | + <param-value>client</param-value> | |
| 22 | + </context-param> | |
| 23 | + <context-param> | |
| 24 | + <param-name>com.sun.faces.validateXml</param-name> | |
| 25 | + <param-value>true</param-value> | |
| 26 | + </context-param> | |
| 27 | + <context-param> | |
| 28 | + <param-name>com.sun.faces.verifyObjects</param-name> | |
| 29 | + <param-value>true</param-value> | |
| 30 | + </context-param> | |
| 31 | + <context-param> | |
| 32 | + <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name> | |
| 33 | + <param-value>com.sun.facelets.FaceletViewHandler</param-value> | |
| 34 | + </context-param> | |
| 35 | + <context-param> | |
| 36 | + <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name> | |
| 37 | + <param-value>false</param-value> | |
| 38 | + </context-param> | |
| 39 | + <filter> | |
| 40 | + <display-name>Ajax4jsf Filter</display-name> | |
| 41 | + <filter-name>ajax4jsf</filter-name> | |
| 42 | + <filter-class>org.ajax4jsf.Filter</filter-class> | |
| 43 | + </filter> | |
| 44 | + <filter-mapping> | |
| 45 | + <filter-name>ajax4jsf</filter-name> | |
| 46 | + <servlet-name>Faces Servlet</servlet-name> | |
| 47 | + <dispatcher>FORWARD</dispatcher> | |
| 48 | + <dispatcher>REQUEST</dispatcher> | |
| 49 | + <dispatcher>INCLUDE</dispatcher> | |
| 50 | + </filter-mapping> | |
| 51 | + <servlet> | |
| 52 | + <servlet-name>Faces Servlet</servlet-name> | |
| 53 | + <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> | |
| 54 | + <load-on-startup>1</load-on-startup> | |
| 55 | + </servlet> | |
| 56 | + <servlet-mapping> | |
| 57 | + <servlet-name>Faces Servlet</servlet-name> | |
| 58 | + <url-pattern>*.jsf</url-pattern> | |
| 59 | + </servlet-mapping> | |
| 60 | + <login-config> | |
| 61 | + <auth-method>BASIC</auth-method> | |
| 62 | + </login-config> | |
| 63 | + <listener> | |
| 64 | + | |
| 65 | + <listener-class>com.sun.faces.config.ConfigureListener</listener-class> | |
| 66 | + | |
| 67 | + </listener> | |
| 68 | +</web-app> | ... | ... |
This diff could not be displayed because it is too large.
| 1 | +/* | |
| 2 | + * jQuery Pines Notify (pnotify) Plugin 1.0.0 | |
| 3 | + * | |
| 4 | + * Copyright (c) 2009 Hunter Perrin | |
| 5 | + * | |
| 6 | + * Licensed (along with all of Pines) under the GNU Affero GPL: | |
| 7 | + * http://www.gnu.org/licenses/agpl.html | |
| 8 | + */ | |
| 9 | + | |
| 10 | +(function($) { | |
| 11 | + var history_handle_top, timer; | |
| 12 | + var body; | |
| 13 | + var jwindow; | |
| 14 | + | |
| 15 | + function $14(element, options) { | |
| 16 | + var attrFn = { | |
| 17 | + val: true, | |
| 18 | + css: true, | |
| 19 | + html: true, | |
| 20 | + text: true, | |
| 21 | + data: true, | |
| 22 | + width: true, | |
| 23 | + height: true, | |
| 24 | + offset: true | |
| 25 | + }; | |
| 26 | + var o = jQuery(element); | |
| 27 | + for (var key in options) { | |
| 28 | + if (jQuery.isFunction(options[key])) { | |
| 29 | + o.bind(key, options[key]); | |
| 30 | + } else if (key in attrFn) { | |
| 31 | + o[key](options[key]); | |
| 32 | + } else { | |
| 33 | + o.attr(key, options[key]); | |
| 34 | + } | |
| 35 | + } | |
| 36 | + return o; | |
| 37 | + } | |
| 38 | + | |
| 39 | + $.extend({ | |
| 40 | + pnotify_remove_all: function () { | |
| 41 | + var body_data = body.data("pnotify"); | |
| 42 | + /* POA: Added null-check */ | |
| 43 | + if (body_data && body_data.length) { | |
| 44 | + $.each(body_data, function() { | |
| 45 | + if (this.pnotify_remove) | |
| 46 | + this.pnotify_remove(); | |
| 47 | + }); | |
| 48 | + } | |
| 49 | + }, | |
| 50 | + pnotify_position_all: function () { | |
| 51 | + if (timer) | |
| 52 | + clearTimeout(timer); | |
| 53 | + timer = null; | |
| 54 | + var body_data = body.data("pnotify"); | |
| 55 | + if (!body_data || !body_data.length) | |
| 56 | + return; | |
| 57 | + $.each(body_data, function() { | |
| 58 | + var s = this.opts.pnotify_stack; | |
| 59 | + if (!s) return; | |
| 60 | + if (!s.nextpos1) | |
| 61 | + s.nextpos1 = s.firstpos1; | |
| 62 | + if (!s.nextpos2) | |
| 63 | + s.nextpos2 = s.firstpos2; | |
| 64 | + if (!s.addpos2) | |
| 65 | + s.addpos2 = 0; | |
| 66 | + if (this.css("display") != "none") { | |
| 67 | + var curpos1, curpos2; | |
| 68 | + var animate = {}; | |
| 69 | + // Calculate the current pos1 value. | |
| 70 | + var csspos1; | |
| 71 | + switch (s.dir1) { | |
| 72 | + case "down": | |
| 73 | + csspos1 = "top"; | |
| 74 | + break; | |
| 75 | + case "up": | |
| 76 | + csspos1 = "bottom"; | |
| 77 | + break; | |
| 78 | + case "left": | |
| 79 | + csspos1 = "right"; | |
| 80 | + break; | |
| 81 | + case "right": | |
| 82 | + csspos1 = "left"; | |
| 83 | + break; | |
| 84 | + } | |
| 85 | + curpos1 = parseInt(this.css(csspos1)); | |
| 86 | + if (isNaN(curpos1)) | |
| 87 | + curpos1 = 0; | |
| 88 | + // Remember the first pos1, so the first visible notice goes there. | |
| 89 | + if (typeof s.firstpos1 == "undefined") { | |
| 90 | + s.firstpos1 = curpos1; | |
| 91 | + s.nextpos1 = s.firstpos1; | |
| 92 | + } | |
| 93 | + // Calculate the current pos2 value. | |
| 94 | + var csspos2; | |
| 95 | + switch (s.dir2) { | |
| 96 | + case "down": | |
| 97 | + csspos2 = "top"; | |
| 98 | + break; | |
| 99 | + case "up": | |
| 100 | + csspos2 = "bottom"; | |
| 101 | + break; | |
| 102 | + case "left": | |
| 103 | + csspos2 = "right"; | |
| 104 | + break; | |
| 105 | + case "right": | |
| 106 | + csspos2 = "left"; | |
| 107 | + break; | |
| 108 | + } | |
| 109 | + curpos2 = parseInt(this.css(csspos2)); | |
| 110 | + if (isNaN(curpos2)) | |
| 111 | + curpos2 = 0; | |
| 112 | + // Remember the first pos2, so the first visible notice goes there. | |
| 113 | + if (typeof s.firstpos2 == "undefined") { | |
| 114 | + s.firstpos2 = curpos2; | |
| 115 | + s.nextpos2 = s.firstpos2; | |
| 116 | + } | |
| 117 | + // Check that it's not beyond the viewport edge. | |
| 118 | + if ((s.dir1 == "down" && s.nextpos1 + this.height() > jwindow.height()) || | |
| 119 | + (s.dir1 == "up" && s.nextpos1 + this.height() > jwindow.height()) || | |
| 120 | + (s.dir1 == "left" && s.nextpos1 + this.width() > jwindow.width()) || | |
| 121 | + (s.dir1 == "right" && s.nextpos1 + this.width() > jwindow.width())) { | |
| 122 | + // If it is, it needs to go back to the first pos1, and over on pos2. | |
| 123 | + s.nextpos1 = s.firstpos1; | |
| 124 | + s.nextpos2 += s.addpos2 + 10; | |
| 125 | + s.addpos2 = 0; | |
| 126 | + } | |
| 127 | + // Animate if we're moving on dir2. | |
| 128 | + if (s.animation && s.nextpos2 < curpos2) { | |
| 129 | + switch (s.dir2) { | |
| 130 | + case "down": | |
| 131 | + animate.top = s.nextpos2 + "px"; | |
| 132 | + break; | |
| 133 | + case "up": | |
| 134 | + animate.bottom = s.nextpos2 + "px"; | |
| 135 | + break; | |
| 136 | + case "left": | |
| 137 | + animate.right = s.nextpos2 + "px"; | |
| 138 | + break; | |
| 139 | + case "right": | |
| 140 | + animate.left = s.nextpos2 + "px"; | |
| 141 | + break; | |
| 142 | + } | |
| 143 | + } else | |
| 144 | + this.css(csspos2, s.nextpos2 + "px"); | |
| 145 | + // Keep track of the widest/tallest notice in the column/row, so we can push the next column/row. | |
| 146 | + switch (s.dir2) { | |
| 147 | + case "down": | |
| 148 | + case "up": | |
| 149 | + if (this.outerHeight(true) > s.addpos2) | |
| 150 | + s.addpos2 = this.height(); | |
| 151 | + break; | |
| 152 | + case "left": | |
| 153 | + case "right": | |
| 154 | + if (this.outerWidth(true) > s.addpos2) | |
| 155 | + s.addpos2 = this.width(); | |
| 156 | + break; | |
| 157 | + } | |
| 158 | + // Move the notice on dir1. | |
| 159 | + if (s.nextpos1) { | |
| 160 | + // Animate if we're moving toward the first pos. | |
| 161 | + if (s.animation && (curpos1 > s.nextpos1 || animate.top || animate.bottom || animate.right || animate.left)) { | |
| 162 | + switch (s.dir1) { | |
| 163 | + case "down": | |
| 164 | + animate.top = s.nextpos1 + "px"; | |
| 165 | + break; | |
| 166 | + case "up": | |
| 167 | + animate.bottom = s.nextpos1 + "px"; | |
| 168 | + break; | |
| 169 | + case "left": | |
| 170 | + animate.right = s.nextpos1 + "px"; | |
| 171 | + break; | |
| 172 | + case "right": | |
| 173 | + animate.left = s.nextpos1 + "px"; | |
| 174 | + break; | |
| 175 | + } | |
| 176 | + } else | |
| 177 | + this.css(csspos1, s.nextpos1 + "px"); | |
| 178 | + } | |
| 179 | + if (animate.top || animate.bottom || animate.right || animate.left) | |
| 180 | + this.animate(animate, {duration: 500, queue: false}); | |
| 181 | + // Calculate the next dir1 position. | |
| 182 | + switch (s.dir1) { | |
| 183 | + case "down": | |
| 184 | + case "up": | |
| 185 | + s.nextpos1 += this.height() + 10; | |
| 186 | + break; | |
| 187 | + case "left": | |
| 188 | + case "right": | |
| 189 | + s.nextpos1 += this.width() + 10; | |
| 190 | + break; | |
| 191 | + } | |
| 192 | + } | |
| 193 | + }); | |
| 194 | + // Reset the next position data. | |
| 195 | + $.each(body_data, function() { | |
| 196 | + var s = this.opts.pnotify_stack; | |
| 197 | + if (!s) return; | |
| 198 | + s.nextpos1 = s.firstpos1; | |
| 199 | + s.nextpos2 = s.firstpos2; | |
| 200 | + s.addpos2 = 0; | |
| 201 | + s.animation = true; | |
| 202 | + }); | |
| 203 | + }, | |
| 204 | + pnotify: function(options) { | |
| 205 | + if (!body) | |
| 206 | + body = $("body"); | |
| 207 | + if (!jwindow) | |
| 208 | + jwindow = $(window); | |
| 209 | + | |
| 210 | + var animating; | |
| 211 | + | |
| 212 | + // Build main options. | |
| 213 | + var opts; | |
| 214 | + if (typeof options != "object") { | |
| 215 | + opts = $.extend({}, $.pnotify.defaults); | |
| 216 | + opts.pnotify_text = options; | |
| 217 | + } else { | |
| 218 | + opts = $.extend({}, $.pnotify.defaults, options); | |
| 219 | + if (opts['pnotify_animation'] instanceof Object) { | |
| 220 | + opts['pnotify_animation'] = $.extend({ | |
| 221 | + effect_in:$.pnotify.defaults.pnotify_animation, | |
| 222 | + effect_out:$.pnotify.defaults.pnotify_animation | |
| 223 | + }, opts['pnotify_animation']); | |
| 224 | + } | |
| 225 | + } | |
| 226 | + | |
| 227 | + if (opts.pnotify_before_init) { | |
| 228 | + if (opts.pnotify_before_init(opts) === false) | |
| 229 | + return null; | |
| 230 | + } | |
| 231 | + | |
| 232 | + // This keeps track of the last element the mouse was over, so | |
| 233 | + // mouseleave, mouseenter, etc can be called. | |
| 234 | + var nonblock_last_elem; | |
| 235 | + // This is used to pass events through the notice if it is non-blocking. | |
| 236 | + var nonblock_pass = function(e, e_name) { | |
| 237 | + pnotify.css("display", "none"); | |
| 238 | + var element_below = document.elementFromPoint(e.clientX, e.clientY); | |
| 239 | + pnotify.css("display", "block"); | |
| 240 | + var jelement_below = $(element_below); | |
| 241 | + var cursor_style = jelement_below.css("cursor"); | |
| 242 | + pnotify.css("cursor", cursor_style != "auto" ? cursor_style : "default"); | |
| 243 | + // If the element changed, call mouseenter, mouseleave, etc. | |
| 244 | + if (!nonblock_last_elem || nonblock_last_elem.get(0) != element_below) { | |
| 245 | + if (nonblock_last_elem) { | |
| 246 | + dom_event.call(nonblock_last_elem.get(0), "mouseleave", e.originalEvent); | |
| 247 | + dom_event.call(nonblock_last_elem.get(0), "mouseout", e.originalEvent); | |
| 248 | + } | |
| 249 | + dom_event.call(element_below, "mouseenter", e.originalEvent); | |
| 250 | + dom_event.call(element_below, "mouseover", e.originalEvent); | |
| 251 | + } | |
| 252 | + dom_event.call(element_below, e_name, e.originalEvent); | |
| 253 | + // Remember the latest element the mouse was over. | |
| 254 | + nonblock_last_elem = jelement_below; | |
| 255 | + }; | |
| 256 | + | |
| 257 | + // Create our widget. | |
| 258 | + // Stop animation, reset the removal timer, and show the close | |
| 259 | + // button when the user mouses over. | |
| 260 | + var pnotify = $14("<div />", { | |
| 261 | + "class": "rf-ny " + opts.pnotify_addclass, | |
| 262 | + "css": {"display": "none"}, | |
| 263 | + "mouseenter": function(e) { | |
| 264 | + if (opts.pnotify_nonblock) e.stopPropagation(); | |
| 265 | + if (opts.pnotify_mouse_reset && animating == "out") { | |
| 266 | + // If it's animating out, animate back in really quick. | |
| 267 | + pnotify.stop(true); | |
| 268 | + pnotify.css("height", "auto").animate({"width": opts.pnotify_width, "opacity": opts.pnotify_nonblock ? opts.pnotify_nonblock_opacity : opts.pnotify_opacity}, "fast"); | |
| 269 | + } else if (opts.pnotify_nonblock && animating != "out") { | |
| 270 | + // If it's non-blocking, animate to the other opacity. | |
| 271 | + pnotify.animate({"opacity": opts.pnotify_nonblock_opacity}, "fast"); | |
| 272 | + } | |
| 273 | + if (opts.pnotify_hide && opts.pnotify_mouse_reset) pnotify.pnotify_cancel_remove(); | |
| 274 | + if (opts.pnotify_closer && !opts.pnotify_nonblock) pnotify.closer.show(); | |
| 275 | + }, | |
| 276 | + "mouseleave": function(e) { | |
| 277 | + if (opts.pnotify_nonblock) e.stopPropagation(); | |
| 278 | + nonblock_last_elem = null; | |
| 279 | + pnotify.css("cursor", "auto"); | |
| 280 | + if (opts.pnotify_nonblock && animating != "out") | |
| 281 | + pnotify.animate({"opacity": opts.pnotify_opacity}, "fast"); | |
| 282 | + if (opts.pnotify_hide && opts.pnotify_mouse_reset) pnotify.pnotify_queue_remove(); | |
| 283 | + pnotify.closer.hide(); | |
| 284 | + $.pnotify_position_all(); | |
| 285 | + }, | |
| 286 | + "mouseover": function(e) { | |
| 287 | + if (opts.pnotify_nonblock) e.stopPropagation(); | |
| 288 | + }, | |
| 289 | + "mouseout": function(e) { | |
| 290 | + if (opts.pnotify_nonblock) e.stopPropagation(); | |
| 291 | + }, | |
| 292 | + "mousemove": function(e) { | |
| 293 | + if (opts.pnotify_nonblock) { | |
| 294 | + e.stopPropagation(); | |
| 295 | + nonblock_pass(e, "onmousemove"); | |
| 296 | + } | |
| 297 | + }, | |
| 298 | + "mousedown": function(e) { | |
| 299 | + if (opts.pnotify_nonblock) { | |
| 300 | + e.stopPropagation(); | |
| 301 | + e.preventDefault(); | |
| 302 | + nonblock_pass(e, "onmousedown"); | |
| 303 | + } | |
| 304 | + }, | |
| 305 | + "mouseup": function(e) { | |
| 306 | + if (opts.pnotify_nonblock) { | |
| 307 | + e.stopPropagation(); | |
| 308 | + e.preventDefault(); | |
| 309 | + nonblock_pass(e, "onmouseup"); | |
| 310 | + } | |
| 311 | + }, | |
| 312 | + "click": function(e) { | |
| 313 | + if (opts.pnotify_nonblock) { | |
| 314 | + e.stopPropagation(); | |
| 315 | + nonblock_pass(e, "onclick"); | |
| 316 | + } | |
| 317 | + }, | |
| 318 | + "dblclick": function(e) { | |
| 319 | + if (opts.pnotify_nonblock) { | |
| 320 | + e.stopPropagation(); | |
| 321 | + nonblock_pass(e, "ondblclick"); | |
| 322 | + } | |
| 323 | + } | |
| 324 | + }); | |
| 325 | + pnotify.opts = opts; | |
| 326 | + // Create a drop shadow. | |
| 327 | + if (opts.pnotify_shadow && !$.browser.msie) | |
| 328 | + pnotify.shadow_container = $14("<div />", {"class": "rf-ny-sh"}).prependTo(pnotify); | |
| 329 | + // Create a container for the notice contents. | |
| 330 | + pnotify.container = $14("<div />", {"class": "rf-ny-co"}) | |
| 331 | + .appendTo(pnotify); | |
| 332 | + | |
| 333 | + pnotify.pnotify_version = "1.0.0"; | |
| 334 | + | |
| 335 | + // This function is for updating the notice. | |
| 336 | + pnotify.pnotify = function(options) { | |
| 337 | + // Update the notice. | |
| 338 | + var old_opts = opts; | |
| 339 | + if (typeof options == "string") | |
| 340 | + opts.pnotify_text = options; | |
| 341 | + else | |
| 342 | + opts = $.extend({}, opts, options); | |
| 343 | + pnotify.opts = opts; | |
| 344 | + // Update the shadow. | |
| 345 | + if (opts.pnotify_shadow != old_opts.pnotify_shadow) { | |
| 346 | + if (opts.pnotify_shadow && !$.browser.msie) | |
| 347 | + pnotify.shadow_container = $14("<div />", {"class": "rf-ny-sh"}).prependTo(pnotify); | |
| 348 | + else | |
| 349 | + pnotify.children(".rf-ny-sh").remove(); | |
| 350 | + } | |
| 351 | + // Update the additional classes. | |
| 352 | + if (opts.pnotify_addclass === false) | |
| 353 | + pnotify.removeClass(old_opts.pnotify_addclass); | |
| 354 | + else if (opts.pnotify_addclass !== old_opts.pnotify_addclass) | |
| 355 | + pnotify.removeClass(old_opts.pnotify_addclass).addClass(opts.pnotify_addclass); | |
| 356 | + // Update the title. | |
| 357 | + if (opts.pnotify_title === false) | |
| 358 | + pnotify.title_container.hide("fast"); | |
| 359 | + else if (opts.pnotify_title !== old_opts.pnotify_title) | |
| 360 | + pnotify.title_container.html(opts.pnotify_title).show(200); | |
| 361 | + // Update the text. | |
| 362 | + if (opts.pnotify_text === false) { | |
| 363 | + pnotify.text_container.hide("fast"); | |
| 364 | + } else if (opts.pnotify_text !== old_opts.pnotify_text) { | |
| 365 | + if (opts.pnotify_insert_brs) | |
| 366 | + opts.pnotify_text = opts.pnotify_text.replace(/\n/g, "<br />"); | |
| 367 | + pnotify.text_container.html(opts.pnotify_text).show(200); | |
| 368 | + } | |
| 369 | + pnotify.pnotify_history = opts.pnotify_history; | |
| 370 | + // Change the notice type. | |
| 371 | + if (opts.pnotify_type != old_opts.pnotify_type) | |
| 372 | + pnotify.container.toggleClass("rf-ny-co rf-ny-co-hover"); | |
| 373 | + if ((opts.pnotify_notice_icon != old_opts.pnotify_notice_icon && opts.pnotify_type == "notice") || | |
| 374 | + (opts.pnotify_error_icon != old_opts.pnotify_error_icon && opts.pnotify_type == "error") || | |
| 375 | + (opts.pnotify_type != old_opts.pnotify_type)) { | |
| 376 | + // Remove any old icon. | |
| 377 | + pnotify.container.find("div.rf-ny-ic").remove(); | |
| 378 | + // if ((opts.pnotify_error_icon && opts.pnotify_type == "error") || (opts.pnotify_notice_icon)) { | |
| 379 | + // Build the new icon. | |
| 380 | + $14("<div />", {"class": "rf-ny-ic"}) | |
| 381 | + .append($14("<span />", {"class": opts.pnotify_type == "error" ? opts.pnotify_error_icon : opts.pnotify_notice_icon})) | |
| 382 | + .prependTo(pnotify.container); | |
| 383 | + // } | |
| 384 | + } | |
| 385 | + // Update the width. | |
| 386 | + if (opts.pnotify_width !== old_opts.pnotify_width) | |
| 387 | + pnotify.animate({width: opts.pnotify_width}); | |
| 388 | + // Update the minimum height. | |
| 389 | + if (opts.pnotify_min_height !== old_opts.pnotify_min_height) | |
| 390 | + pnotify.container.animate({minHeight: opts.pnotify_min_height}); | |
| 391 | + // Update the opacity. | |
| 392 | + if (opts.pnotify_opacity !== old_opts.pnotify_opacity) | |
| 393 | + pnotify.fadeTo(opts.pnotify_animate_speed, opts.pnotify_opacity); | |
| 394 | + if (!opts.pnotify_hide) | |
| 395 | + pnotify.pnotify_cancel_remove(); | |
| 396 | + else if (!old_opts.pnotify_hide) | |
| 397 | + pnotify.pnotify_queue_remove(); | |
| 398 | + pnotify.pnotify_queue_position(); | |
| 399 | + return pnotify; | |
| 400 | + }; | |
| 401 | + | |
| 402 | + // Queue the position function so it doesn't run repeatedly and use | |
| 403 | + // up resources. | |
| 404 | + pnotify.pnotify_queue_position = function() { | |
| 405 | + if (timer) | |
| 406 | + clearTimeout(timer); | |
| 407 | + timer = setTimeout($.pnotify_position_all, 10); | |
| 408 | + }; | |
| 409 | + | |
| 410 | + // Display the notice. | |
| 411 | + pnotify.pnotify_display = function() { | |
| 412 | + // If the notice is not in the DOM, append it. | |
| 413 | + if (!pnotify.parent().length) | |
| 414 | + pnotify.appendTo(body); | |
| 415 | + // Run callback. | |
| 416 | + if (opts.pnotify_before_open) { | |
| 417 | + if (opts.pnotify_before_open(pnotify) === false) | |
| 418 | + return; | |
| 419 | + } | |
| 420 | + pnotify.pnotify_queue_position(); | |
| 421 | + // First show it, then set its opacity, then hide it. | |
| 422 | + if (opts.pnotify_animation == "fade" || opts.pnotify_animation.effect_in == "fade") { | |
| 423 | + // If it's fading in, it should start at 0. | |
| 424 | + pnotify.show().fadeTo(0, 0).hide(); | |
| 425 | + } else { | |
| 426 | + // Or else it should be set to the opacity. | |
| 427 | + if (opts.pnotify_opacity != 1) | |
| 428 | + pnotify.show().fadeTo(0, opts.pnotify_opacity).hide(); | |
| 429 | + } | |
| 430 | + pnotify.animate_in(function() { | |
| 431 | + if (opts.pnotify_after_open) | |
| 432 | + opts.pnotify_after_open(pnotify); | |
| 433 | + | |
| 434 | + pnotify.pnotify_queue_position(); | |
| 435 | + | |
| 436 | + // Now set it to hide. | |
| 437 | + if (opts.pnotify_hide) | |
| 438 | + pnotify.pnotify_queue_remove(); | |
| 439 | + }); | |
| 440 | + }; | |
| 441 | + | |
| 442 | + // Remove the notice. | |
| 443 | + pnotify.pnotify_remove = function() { | |
| 444 | + if (pnotify.timer) { | |
| 445 | + window.clearTimeout(pnotify.timer); | |
| 446 | + pnotify.timer = null; | |
| 447 | + } | |
| 448 | + // Run callback. | |
| 449 | + if (opts.pnotify_before_close) { | |
| 450 | + if (opts.pnotify_before_close(pnotify) === false) | |
| 451 | + return; | |
| 452 | + } | |
| 453 | + pnotify.animate_out(function() { | |
| 454 | + if (opts.pnotify_after_close) { | |
| 455 | + if (opts.pnotify_after_close(pnotify) === false) | |
| 456 | + return; | |
| 457 | + } | |
| 458 | + pnotify.pnotify_queue_position(); | |
| 459 | + // If we're supposed to remove the notice from the DOM, do it. | |
| 460 | + if (opts.pnotify_remove) { | |
| 461 | + if (opts.pnotify_history) { | |
| 462 | + if (pnotify[0].parentNode != null) { | |
| 463 | + pnotify[0].parentNode.removeChild(pnotify[0]); | |
| 464 | + } | |
| 465 | + } else { | |
| 466 | + pnotify.remove(); | |
| 467 | + } | |
| 468 | + } | |
| 469 | + }); | |
| 470 | + }; | |
| 471 | + | |
| 472 | + // Animate the notice in. | |
| 473 | + pnotify.animate_in = function(callback) { | |
| 474 | + // Declare that the notice is animating in. (Or has completed animating in.) | |
| 475 | + animating = "in"; | |
| 476 | + var animation; | |
| 477 | + if (typeof opts.pnotify_animation.effect_in != "undefined") | |
| 478 | + animation = opts.pnotify_animation.effect_in; | |
| 479 | + else | |
| 480 | + animation = opts.pnotify_animation; | |
| 481 | + if (animation == "none") { | |
| 482 | + pnotify.show(); | |
| 483 | + callback(); | |
| 484 | + } else if (animation == "show") | |
| 485 | + pnotify.show(opts.pnotify_animate_speed, callback); | |
| 486 | + else if (animation == "fade") | |
| 487 | + pnotify.show().fadeTo(opts.pnotify_animate_speed, opts.pnotify_opacity, callback); | |
| 488 | + else if (animation == "slide") | |
| 489 | + pnotify.slideDown(opts.pnotify_animate_speed, callback); | |
| 490 | + else if (typeof animation == "function") | |
| 491 | + animation("in", callback, pnotify); | |
| 492 | + else if (pnotify.effect) | |
| 493 | + pnotify.effect(animation, {}, opts.pnotify_animate_speed, callback); | |
| 494 | + }; | |
| 495 | + | |
| 496 | + // Animate the notice out. | |
| 497 | + pnotify.animate_out = function(callback) { | |
| 498 | + // Declare that the notice is animating out. (Or has completed animating out.) | |
| 499 | + animating = "out"; | |
| 500 | + var animation; | |
| 501 | + if (typeof opts.pnotify_animation.effect_out != "undefined") | |
| 502 | + animation = opts.pnotify_animation.effect_out; | |
| 503 | + else | |
| 504 | + animation = opts.pnotify_animation; | |
| 505 | + if (animation == "none") { | |
| 506 | + pnotify.hide(); | |
| 507 | + callback(); | |
| 508 | + } else if (animation == "show") | |
| 509 | + pnotify.hide(opts.pnotify_animate_speed, callback); | |
| 510 | + else if (animation == "fade") | |
| 511 | + pnotify.fadeOut(opts.pnotify_animate_speed, callback); | |
| 512 | + else if (animation == "slide") | |
| 513 | + pnotify.slideUp(opts.pnotify_animate_speed, callback); | |
| 514 | + else if (typeof animation == "function") | |
| 515 | + animation("out", callback, pnotify); | |
| 516 | + else if (pnotify.effect) | |
| 517 | + pnotify.effect(animation, {}, opts.pnotify_animate_speed, callback); | |
| 518 | + }; | |
| 519 | + | |
| 520 | + // Cancel any pending removal timer. | |
| 521 | + pnotify.pnotify_cancel_remove = function() { | |
| 522 | + if (pnotify.timer) | |
| 523 | + window.clearTimeout(pnotify.timer); | |
| 524 | + }; | |
| 525 | + | |
| 526 | + // Queue a removal timer. | |
| 527 | + pnotify.pnotify_queue_remove = function() { | |
| 528 | + // Cancel any current removal timer. | |
| 529 | + pnotify.pnotify_cancel_remove(); | |
| 530 | + pnotify.timer = window.setTimeout(function() { | |
| 531 | + pnotify.pnotify_remove(); | |
| 532 | + }, (isNaN(opts.pnotify_delay) ? 0 : opts.pnotify_delay)); | |
| 533 | + }; | |
| 534 | + | |
| 535 | + // Provide a button to close the notice. | |
| 536 | + pnotify.closer = $14("<div />", { | |
| 537 | + "class": "rf-ny-cl", | |
| 538 | + "css": {"cursor": "pointer", "display": "none"}, | |
| 539 | + "click": function() { | |
| 540 | + pnotify.pnotify_remove(); | |
| 541 | + pnotify.closer.hide(); | |
| 542 | + } | |
| 543 | + }) | |
| 544 | + .append($14("<span />", {"class": "rf-ny-cl-ic"})) | |
| 545 | + .appendTo(pnotify.container); | |
| 546 | + | |
| 547 | + // Add the appropriate icon. | |
| 548 | + // if ((opts.pnotify_error_icon && opts.pnotify_type == "error") || (opts.pnotify_notice_icon)) { | |
| 549 | + $14("<div />", {"class": "rf-ny-ic"}) | |
| 550 | + .append($14("<span />", {"class": opts.pnotify_type == "error" ? opts.pnotify_error_icon : opts.pnotify_notice_icon})) | |
| 551 | + .appendTo(pnotify.container); | |
| 552 | + // } | |
| 553 | + | |
| 554 | + // Add a title. | |
| 555 | + pnotify.title_container = $14("<div />", { | |
| 556 | + "class": "rf-ny-tl", | |
| 557 | + "html": opts.pnotify_title | |
| 558 | + }) | |
| 559 | + .appendTo(pnotify.container); | |
| 560 | + if (opts.pnotify_title === false) | |
| 561 | + pnotify.title_container.hide(); | |
| 562 | + | |
| 563 | + // Replace new lines with HTML line breaks. | |
| 564 | + if (opts.pnotify_insert_brs && typeof opts.pnotify_text == "string") | |
| 565 | + opts.pnotify_text = opts.pnotify_text.replace(/\n/g, "<br />"); | |
| 566 | + // Add text. | |
| 567 | + pnotify.text_container = $14("<div />", { | |
| 568 | + "class": "rf-ny-te", | |
| 569 | + "html": opts.pnotify_text | |
| 570 | + }) | |
| 571 | + .appendTo(pnotify.container); | |
| 572 | + if (opts.pnotify_text === false) | |
| 573 | + pnotify.text_container.hide(); | |
| 574 | + | |
| 575 | + // Set width and min height. | |
| 576 | + if (typeof opts.pnotify_width == "string") | |
| 577 | + pnotify.css("width", opts.pnotify_width); | |
| 578 | + if (typeof opts.pnotify_min_height == "string") | |
| 579 | + pnotify.container.css("min-height", opts.pnotify_min_height); | |
| 580 | + | |
| 581 | + // The history variable controls whether the notice gets redisplayed | |
| 582 | + // by the history pull down. | |
| 583 | + pnotify.pnotify_history = opts.pnotify_history; | |
| 584 | + | |
| 585 | + // Add the notice to the notice array. | |
| 586 | + var body_data = body.data("pnotify"); | |
| 587 | + if (body_data == null || typeof body_data != "object") | |
| 588 | + body_data = []; | |
| 589 | + if (opts.pnotify_stack.push == "top") | |
| 590 | + body_data = $.merge([pnotify], body_data); | |
| 591 | + else | |
| 592 | + body_data = $.merge(body_data, [pnotify]); | |
| 593 | + body.data("pnotify", body_data); | |
| 594 | + | |
| 595 | + // Run callback. | |
| 596 | + if (opts.pnotify_after_init) | |
| 597 | + opts.pnotify_after_init(pnotify); | |
| 598 | + | |
| 599 | + if (opts.pnotify_history) { | |
| 600 | + // If there isn't a history pull down, create one. | |
| 601 | + var body_history = body.data("pnotify_history"); | |
| 602 | + if (typeof body_history == "undefined") { | |
| 603 | + body_history = $14("<div />", { | |
| 604 | + "class": "rf-ny-hc", | |
| 605 | + "mouseleave": function() { | |
| 606 | + body_history.animate({top: "-" + history_handle_top + "px"}, {duration: 100, queue: false}); | |
| 607 | + } | |
| 608 | + }) | |
| 609 | + .append($14("<div />", {"class": "rf-ny-hh", "text": "Redisplay"})) | |
| 610 | + .append($14("<button />", { | |
| 611 | + "class": "rf-ny-ha", | |
| 612 | + "text": "All", | |
| 613 | + // "mouseenter": function(){ | |
| 614 | + // $(this).addClass("ui-state-hover"); | |
| 615 | + // }, | |
| 616 | + // "mouseleave": function(){ | |
| 617 | + // $(this).removeClass("ui-state-hover"); | |
| 618 | + // }, | |
| 619 | + "click": function() { | |
| 620 | + // Display all notices. (Disregarding non-history notices.) | |
| 621 | + $.each(body.data("pnotify"), function() { | |
| 622 | + if (this.pnotify_history && this.pnotify_display) | |
| 623 | + this.pnotify_display(); | |
| 624 | + }); | |
| 625 | + return false; | |
| 626 | + } | |
| 627 | + })) | |
| 628 | + .append($14("<button />", { | |
| 629 | + "class": "rf-ny-hl", | |
| 630 | + "text": "Last", | |
| 631 | + // "mouseenter": function(){ | |
| 632 | + // $(this).addClass("ui-state-hover"); | |
| 633 | + // }, | |
| 634 | + // "mouseleave": function(){ | |
| 635 | + // $(this).removeClass("ui-state-hover"); | |
| 636 | + // }, | |
| 637 | + "click": function() { | |
| 638 | + // Look up the last history notice, and display it. | |
| 639 | + var i = 1; | |
| 640 | + var body_data = body.data("pnotify"); | |
| 641 | + while (!body_data[body_data.length - i] || !body_data[body_data.length - i].pnotify_history || body_data[body_data.length - i].is(":visible")) { | |
| 642 | + if (body_data.length - i === 0) | |
| 643 | + return false; | |
| 644 | + i++; | |
| 645 | + } | |
| 646 | + var n = body_data[body_data.length - i]; | |
| 647 | + if (n.pnotify_display) | |
| 648 | + n.pnotify_display(); | |
| 649 | + return false; | |
| 650 | + } | |
| 651 | + })) | |
| 652 | + .appendTo(body); | |
| 653 | + | |
| 654 | + // Make a handle so the user can pull down the history pull down. | |
| 655 | + var handle = $14("<span />", { | |
| 656 | + "class": "rf-ny-hp", | |
| 657 | + "mouseenter": function() { | |
| 658 | + body_history.animate({top: "0"}, {duration: 100, queue: false}); | |
| 659 | + } | |
| 660 | + }) | |
| 661 | + .appendTo(body_history); | |
| 662 | + | |
| 663 | + // Get the top of the handle. | |
| 664 | + history_handle_top = handle.offset().top + 2; | |
| 665 | + // Hide the history pull down up to the top of the handle. | |
| 666 | + body_history.css({top: "-" + history_handle_top + "px"}); | |
| 667 | + // Save the history pull down. | |
| 668 | + body.data("pnotify_history", body_history); | |
| 669 | + } | |
| 670 | + } | |
| 671 | + | |
| 672 | + // Mark the stack so it won't animate the new notice. | |
| 673 | + opts.pnotify_stack.animation = false; | |
| 674 | + | |
| 675 | + // Display the notice. | |
| 676 | + pnotify.pnotify_display(); | |
| 677 | + | |
| 678 | + return pnotify; | |
| 679 | + } | |
| 680 | + }); | |
| 681 | + | |
| 682 | + // Some useful regexes. | |
| 683 | + var re_on = /^on/; | |
| 684 | + var re_mouse_events = /^(dbl)?click$|^mouse(move|down|up|over|out|enter|leave)$|^contextmenu$/; | |
| 685 | + var re_ui_events = /^(focus|blur|select|change|reset)$|^key(press|down|up)$/; | |
| 686 | + var re_html_events = /^(scroll|resize|(un)?load|abort|error)$/; | |
| 687 | + // Fire a DOM event. | |
| 688 | + var dom_event = function(e, orig_e) { | |
| 689 | + var event_object; | |
| 690 | + e = e.toLowerCase(); | |
| 691 | + if (document.createEvent && this.dispatchEvent) { | |
| 692 | + // FireFox, Opera, Safari, Chrome | |
| 693 | + e = e.replace(re_on, ''); | |
| 694 | + if (e.match(re_mouse_events)) { | |
| 695 | + // This allows the click event to fire on the notice. There is | |
| 696 | + // probably a much better way to do it. | |
| 697 | + $(this).offset(); | |
| 698 | + event_object = document.createEvent("MouseEvents"); | |
| 699 | + event_object.initMouseEvent( | |
| 700 | + e, orig_e.bubbles, orig_e.cancelable, orig_e.view, orig_e.detail, | |
| 701 | + orig_e.screenX, orig_e.screenY, orig_e.clientX, orig_e.clientY, | |
| 702 | + orig_e.ctrlKey, orig_e.altKey, orig_e.shiftKey, orig_e.metaKey, orig_e.button, orig_e.relatedTarget | |
| 703 | + ); | |
| 704 | + } else if (e.match(re_ui_events)) { | |
| 705 | + event_object = document.createEvent("UIEvents"); | |
| 706 | + event_object.initUIEvent(e, orig_e.bubbles, orig_e.cancelable, orig_e.view, orig_e.detail); | |
| 707 | + } else if (e.match(re_html_events)) { | |
| 708 | + event_object = document.createEvent("HTMLEvents"); | |
| 709 | + event_object.initEvent(e, orig_e.bubbles, orig_e.cancelable); | |
| 710 | + } | |
| 711 | + if (!event_object) return; | |
| 712 | + this.dispatchEvent(event_object); | |
| 713 | + } else { | |
| 714 | + // Internet Explorer | |
| 715 | + if (!e.match(re_on)) e = "on" + e; | |
| 716 | + event_object = document.createEventObject(orig_e); | |
| 717 | + this.fireEvent(e, event_object); | |
| 718 | + } | |
| 719 | + }; | |
| 720 | + | |
| 721 | + $.pnotify.defaults = { | |
| 722 | + // The notice's title. | |
| 723 | + pnotify_title: false, | |
| 724 | + // The notice's text. | |
| 725 | + pnotify_text: false, | |
| 726 | + // Additional classes to be added to the notice. (For custom styling.) | |
| 727 | + pnotify_addclass: "", | |
| 728 | + // Create a non-blocking notice. It lets the user click elements underneath it. | |
| 729 | + pnotify_nonblock: false, | |
| 730 | + // The opacity of the notice (if it's non-blocking) when the mouse is over it. | |
| 731 | + pnotify_nonblock_opacity: .2, | |
| 732 | + // Display a pull down menu to redisplay previous notices, and place the notice in the history. | |
| 733 | + pnotify_history: true, | |
| 734 | + // Width of the notice. | |
| 735 | + pnotify_width: "300px", | |
| 736 | + // Minimum height of the notice. It will expand to fit content. | |
| 737 | + pnotify_min_height: "16px", | |
| 738 | + // Type of the notice. "notice" or "error". | |
| 739 | + pnotify_type: "notice", | |
| 740 | + // The icon class to use if type is notice. | |
| 741 | + pnotify_notice_icon: "", | |
| 742 | + // The icon class to use if type is error. | |
| 743 | + pnotify_error_icon: "", | |
| 744 | + // The animation to use when displaying and hiding the notice. "none", "show", "fade", and "slide" are built in to jQuery. Others require jQuery UI. Use an object with effect_in and effect_out to use different effects. | |
| 745 | + pnotify_animation: "fade", | |
| 746 | + // Speed at which the notice animates in and out. "slow", "def" or "normal", "fast" or number of milliseconds. | |
| 747 | + pnotify_animate_speed: "slow", | |
| 748 | + // Opacity of the notice. | |
| 749 | + pnotify_opacity: 1, | |
| 750 | + // Display a drop shadow. | |
| 751 | + pnotify_shadow: false, | |
| 752 | + // Provide a button for the user to manually close the notice. | |
| 753 | + pnotify_closer: true, | |
| 754 | + // After a delay, remove the notice. | |
| 755 | + pnotify_hide: true, | |
| 756 | + // Delay in milliseconds before the notice is removed. | |
| 757 | + pnotify_delay: 8000, | |
| 758 | + // Reset the hide timer if the mouse moves over the notice. | |
| 759 | + pnotify_mouse_reset: true, | |
| 760 | + // Remove the notice's elements from the DOM after it is removed. | |
| 761 | + pnotify_remove: true, | |
| 762 | + // Change new lines to br tags. | |
| 763 | + pnotify_insert_brs: true, | |
| 764 | + // The stack on which the notices will be placed. Also controls the direction the notices stack. | |
| 765 | + pnotify_stack: {"dir1": "down", "dir2": "left", "push": "bottom"} | |
| 766 | + }; | |
| 767 | +})(jQuery); | |
| \ No newline at end of file | ... | ... |
| 1 | +<ui:component xmlns="http://www.w3.org/1999/xhtml" | |
| 2 | + xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 3 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 4 | + xmlns:h="http://java.sun.com/jsf/html"> | |
| 5 | + <div> | |
| 6 | + <ul> | |
| 7 | + <!--<li><h:outputLink value="#{facesContext.externalContext.requestContextPath}/sample_1.jsf">Example 1</h:outputLink></li>--> | |
| 8 | + </ul> | |
| 9 | + </div> | |
| 10 | +</ui:component> | ... | ... |
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 4 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 5 | + xmlns:h="http://java.sun.com/jsf/html" xmlns:sandbox="http://richfaces.org/sandbox/jQueryPlugin" | |
| 6 | + xmlns:a4j="http://richfaces.org/a4j" | |
| 7 | + xmlns:rich="http://richfaces.org/rich"> | |
| 8 | +<head> | |
| 9 | + <title>jQueryPlugin sample</title> | |
| 10 | + <a4j:loadStyle src="resource:///jquery.pnotify.xcss"/> | |
| 11 | + <style type="text/css"> | |
| 12 | + #calendar { | |
| 13 | + float: right; | |
| 14 | + width: 200px; | |
| 15 | + } | |
| 16 | + </style> | |
| 17 | +</head> | |
| 18 | + | |
| 19 | +<body> | |
| 20 | +<ui:include src="menu.xhtml"/> | |
| 21 | + | |
| 22 | +<p> | |
| 23 | + This sample shows how to load 2 different jQuery plugins </p> | |
| 24 | +<ul> | |
| 25 | + <li>pnotify</li> | |
| 26 | + <li>fullCalendar</li> | |
| 27 | +</ul> | |
| 28 | + | |
| 29 | +<div id="calendar"></div> | |
| 30 | + | |
| 31 | +<script type="text/javascript"> | |
| 32 | + jQuery("#calendar").fullCalendar({defaultView: 'month'}); | |
| 33 | + jQuery.pnotify({pnotify_title:'Hello!',pnotify_text:'I\'m a custom plugin',pnotify_hide:false}); | |
| 34 | +</script> | |
| 35 | + | |
| 36 | +<sandbox:jQueryPlugin src="/jquery.pnotify.js"/> | |
| 37 | +<sandbox:jQueryPlugin src="/fullcalendar.js"/> | |
| 38 | + | |
| 39 | +<rich:insert src="/sample_1.xhtml" highlight="html"/> | |
| 40 | + | |
| 41 | +</body> | |
| 42 | +</html> | ... | ... |
samples/lightbox-sample/pom.xml
0 → 100644
| 1 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 2 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |
| 3 | + <parent> | |
| 4 | + <groupId>org.richfaces.sandbox.bernard</groupId> | |
| 5 | + <artifactId>parent</artifactId> | |
| 6 | + <version>3.3.4-SNAPSHOT</version> | |
| 7 | + <relativePath>../pom.xml</relativePath> | |
| 8 | + </parent> | |
| 9 | + <modelVersion>4.0.0</modelVersion> | |
| 10 | + <groupId>org.richfaces</groupId> | |
| 11 | + <artifactId>lightbox-sample</artifactId> | |
| 12 | + <packaging>war</packaging> | |
| 13 | + <name>lightbox-sample Maven Webapp</name> | |
| 14 | + <build> | |
| 15 | + <finalName>lightbox-sample</finalName> | |
| 16 | + </build> | |
| 17 | + <dependencies> | |
| 18 | + <dependency> | |
| 19 | + <groupId>org.richfaces.ui</groupId> | |
| 20 | + <artifactId>core</artifactId> | |
| 21 | + <version>${project.version}</version> | |
| 22 | + </dependency> | |
| 23 | + <dependency> | |
| 24 | + <groupId>org.richfaces.ui</groupId> | |
| 25 | + <artifactId>richfaces-ui</artifactId> | |
| 26 | + </dependency> | |
| 27 | + <dependency> | |
| 28 | + <groupId>com.uwyn</groupId> | |
| 29 | + <artifactId>jhighlight</artifactId> | |
| 30 | + <version>1.0</version> | |
| 31 | + </dependency> | |
| 32 | + <dependency> | |
| 33 | + <groupId>org.richfaces.sandbox.ui</groupId> | |
| 34 | + <artifactId>lightbox</artifactId> | |
| 35 | + <version>${project.version}</version> | |
| 36 | + </dependency> | |
| 37 | + </dependencies> | |
| 38 | +</project> | ... | ... |
| 1 | +package org.richfaces.samples.lightbox; | |
| 2 | + | |
| 3 | +import java.io.Serializable; | |
| 4 | + | |
| 5 | +public class ConfigBean implements Serializable { | |
| 6 | + | |
| 7 | + private String overlayBgColor = "#000"; | |
| 8 | + private double overlayOpacity = .8; | |
| 9 | + private int containerBorderSize = 10; | |
| 10 | + private int containerResizeSpeed = 400; | |
| 11 | + private boolean fixedNavigation = false; | |
| 12 | + private String keyToClose = "c"; | |
| 13 | + private String keyToNext = "n"; | |
| 14 | + private String keyToPrev = "p"; | |
| 15 | + private String txtImage = "Image"; | |
| 16 | + private String txtOf = "of"; | |
| 17 | + private String imageBlank; | |
| 18 | + private String imageBtnClose; | |
| 19 | + private String imageBtnNext; | |
| 20 | + private String imageBtnPrev; | |
| 21 | + private String imageLoading; | |
| 22 | + | |
| 23 | + public String getOverlayBgColor() { | |
| 24 | + return overlayBgColor; | |
| 25 | + } | |
| 26 | + | |
| 27 | + public void setOverlayBgColor(String overlayBgColor) { | |
| 28 | + this.overlayBgColor = overlayBgColor; | |
| 29 | + } | |
| 30 | + | |
| 31 | + public double getOverlayOpacity() { | |
| 32 | + return overlayOpacity; | |
| 33 | + } | |
| 34 | + | |
| 35 | + public void setOverlayOpacity(double overlayOpacity) { | |
| 36 | + this.overlayOpacity = overlayOpacity; | |
| 37 | + } | |
| 38 | + | |
| 39 | + public int getContainerBorderSize() { | |
| 40 | + return containerBorderSize; | |
| 41 | + } | |
| 42 | + | |
| 43 | + public void setContainerBorderSize(int containerBorderSize) { | |
| 44 | + this.containerBorderSize = containerBorderSize; | |
| 45 | + } | |
| 46 | + | |
| 47 | + public int getContainerResizeSpeed() { | |
| 48 | + return containerResizeSpeed; | |
| 49 | + } | |
| 50 | + | |
| 51 | + public void setContainerResizeSpeed(int containerResizeSpeed) { | |
| 52 | + this.containerResizeSpeed = containerResizeSpeed; | |
| 53 | + } | |
| 54 | + | |
| 55 | + public boolean isFixedNavigation() { | |
| 56 | + return fixedNavigation; | |
| 57 | + } | |
| 58 | + | |
| 59 | + public void setFixedNavigation(boolean fixedNavigation) { | |
| 60 | + this.fixedNavigation = fixedNavigation; | |
| 61 | + } | |
| 62 | + | |
| 63 | + public String getKeyToClose() { | |
| 64 | + return keyToClose; | |
| 65 | + } | |
| 66 | + | |
| 67 | + public void setKeyToClose(String keyToClose) { | |
| 68 | + this.keyToClose = keyToClose; | |
| 69 | + } | |
| 70 | + | |
| 71 | + public String getKeyToNext() { | |
| 72 | + return keyToNext; | |
| 73 | + } | |
| 74 | + | |
| 75 | + public void setKeyToNext(String keyToNext) { | |
| 76 | + this.keyToNext = keyToNext; | |
| 77 | + } | |
| 78 | + | |
| 79 | + public String getKeyToPrev() { | |
| 80 | + return keyToPrev; | |
| 81 | + } | |
| 82 | + | |
| 83 | + public void setKeyToPrev(String keyToPrev) { | |
| 84 | + this.keyToPrev = keyToPrev; | |
| 85 | + } | |
| 86 | + | |
| 87 | + public String getTxtImage() { | |
| 88 | + return txtImage; | |
| 89 | + } | |
| 90 | + | |
| 91 | + public void setTxtImage(String txtImage) { | |
| 92 | + this.txtImage = txtImage; | |
| 93 | + } | |
| 94 | + | |
| 95 | + public String getTxtOf() { | |
| 96 | + return txtOf; | |
| 97 | + } | |
| 98 | + | |
| 99 | + public void setTxtOf(String txtOf) { | |
| 100 | + this.txtOf = txtOf; | |
| 101 | + } | |
| 102 | + | |
| 103 | + public void setImageBlank(String imageBlank) { | |
| 104 | + this.imageBlank = imageBlank; | |
| 105 | + } | |
| 106 | + | |
| 107 | + public String getImageBlank() { | |
| 108 | + return imageBlank; | |
| 109 | + } | |
| 110 | + | |
| 111 | + public void setImageBtnClose(String imageBtnClose) { | |
| 112 | + this.imageBtnClose = imageBtnClose; | |
| 113 | + } | |
| 114 | + | |
| 115 | + public String getImageBtnClose() { | |
| 116 | + return imageBtnClose; | |
| 117 | + } | |
| 118 | + | |
| 119 | + public void setImageBtnNext(String imageBtnNext) { | |
| 120 | + this.imageBtnNext = imageBtnNext; | |
| 121 | + } | |
| 122 | + | |
| 123 | + public String getImageBtnNext() { | |
| 124 | + return imageBtnNext; | |
| 125 | + } | |
| 126 | + | |
| 127 | + public void setImageBtnPrev(String imageBtnPrev) { | |
| 128 | + this.imageBtnPrev = imageBtnPrev; | |
| 129 | + } | |
| 130 | + | |
| 131 | + public String getImageBtnPrev() { | |
| 132 | + return imageBtnPrev; | |
| 133 | + } | |
| 134 | + | |
| 135 | + public void setImageLoading(String imageLoading) { | |
| 136 | + this.imageLoading = imageLoading; | |
| 137 | + } | |
| 138 | + | |
| 139 | + public String getImageLoading() { | |
| 140 | + return imageLoading; | |
| 141 | + } | |
| 142 | +} | ... | ... |
| 1 | +<?xml version="1.0"?> | |
| 2 | +<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" | |
| 3 | + "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"> | |
| 4 | +<faces-config> | |
| 5 | + <managed-bean> | |
| 6 | + <managed-bean-name>config</managed-bean-name> | |
| 7 | + <managed-bean-class>org.richfaces.samples.lightbox.ConfigBean</managed-bean-class> | |
| 8 | + <managed-bean-scope>session</managed-bean-scope> | |
| 9 | + </managed-bean> | |
| 10 | +</faces-config> | |
| 11 | + | ... | ... |
| 1 | +<jboss-deployment-structure> | |
| 2 | + <deployment> | |
| 3 | + <exclusions> | |
| 4 | + <module name="javax.faces.api" slot="main"/> | |
| 5 | + <module name="com.sun.jsf-impl" slot="main"/> | |
| 6 | + </exclusions> | |
| 7 | + <dependencies> | |
| 8 | + <module name="org.apache.commons.logging"/> | |
| 9 | + <module name="org.apache.commons.collections"/> | |
| 10 | + <module name="org.apache.commons.beanutils"/> | |
| 11 | + <module name="javax.faces.api" slot="1.2"/> | |
| 12 | + <module name="com.sun.jsf-impl" slot="1.2"/> | |
| 13 | + </dependencies> | |
| 14 | + </deployment> | |
| 15 | +</jboss-deployment-structure> | |
| 16 | + | ... | ... |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" | |
| 3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 4 | + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> | |
| 5 | + <description>Richfaces lightbox Sample</description> | |
| 6 | + <display-name>lightbox-sample</display-name> | |
| 7 | + <context-param> | |
| 8 | + <param-name>javax.faces.DEFAULT_SUFFIX</param-name> | |
| 9 | + <param-value>.xhtml</param-value> | |
| 10 | + </context-param> | |
| 11 | + <context-param> | |
| 12 | + <param-name>facelets.REFRESH_PERIOD</param-name> | |
| 13 | + <param-value>2</param-value> | |
| 14 | + </context-param> | |
| 15 | + <context-param> | |
| 16 | + <param-name>facelets.DEVELOPMENT</param-name> | |
| 17 | + <param-value>true</param-value> | |
| 18 | + </context-param> | |
| 19 | + <context-param> | |
| 20 | + <param-name>javax.faces.STATE_SAVING_METHOD</param-name> | |
| 21 | + <param-value>client</param-value> | |
| 22 | + </context-param> | |
| 23 | + <context-param> | |
| 24 | + <param-name>com.sun.faces.validateXml</param-name> | |
| 25 | + <param-value>true</param-value> | |
| 26 | + </context-param> | |
| 27 | + <context-param> | |
| 28 | + <param-name>com.sun.faces.verifyObjects</param-name> | |
| 29 | + <param-value>true</param-value> | |
| 30 | + </context-param> | |
| 31 | + <context-param> | |
| 32 | + <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name> | |
| 33 | + <param-value>com.sun.facelets.FaceletViewHandler</param-value> | |
| 34 | + </context-param> | |
| 35 | + <context-param> | |
| 36 | + <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name> | |
| 37 | + <param-value>false</param-value> | |
| 38 | + </context-param> | |
| 39 | + <filter> | |
| 40 | + <display-name>Ajax4jsf Filter</display-name> | |
| 41 | + <filter-name>ajax4jsf</filter-name> | |
| 42 | + <filter-class>org.ajax4jsf.Filter</filter-class> | |
| 43 | + </filter> | |
| 44 | + <filter-mapping> | |
| 45 | + <filter-name>ajax4jsf</filter-name> | |
| 46 | + <servlet-name>Faces Servlet</servlet-name> | |
| 47 | + <dispatcher>FORWARD</dispatcher> | |
| 48 | + <dispatcher>REQUEST</dispatcher> | |
| 49 | + <dispatcher>INCLUDE</dispatcher> | |
| 50 | + </filter-mapping> | |
| 51 | + <servlet> | |
| 52 | + <servlet-name>Faces Servlet</servlet-name> | |
| 53 | + <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> | |
| 54 | + <load-on-startup>1</load-on-startup> | |
| 55 | + </servlet> | |
| 56 | + <servlet-mapping> | |
| 57 | + <servlet-name>Faces Servlet</servlet-name> | |
| 58 | + <url-pattern>*.jsf</url-pattern> | |
| 59 | + </servlet-mapping> | |
| 60 | + <login-config> | |
| 61 | + <auth-method>BASIC</auth-method> | |
| 62 | + </login-config> | |
| 63 | + <listener> | |
| 64 | + | |
| 65 | + <listener-class>com.sun.faces.config.ConfigureListener</listener-class> | |
| 66 | + | |
| 67 | + </listener> | |
| 68 | +</web-app> | ... | ... |
| 1 | +<ui:component xmlns="http://www.w3.org/1999/xhtml" | |
| 2 | + xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 3 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 4 | + xmlns:h="http://java.sun.com/jsf/html"> | |
| 5 | + <div> | |
| 6 | + <ul> | |
| 7 | + <!--<li><h:outputLink value="#{facesContext.externalContext.requestContextPath}/sample_1.jsf">Example 1</h:outputLink></li>--> | |
| 8 | + </ul> | |
| 9 | + </div> | |
| 10 | +</ui:component> | ... | ... |
19.5 KB
44.5 KB
38.4 KB
18.3 KB
30.2 KB
2.04 KB
2.48 KB
2.18 KB
1.95 KB
2 KB
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" | |
| 4 | + xmlns:f="http://java.sun.com/jsf/core" | |
| 5 | + xmlns:h="http://java.sun.com/jsf/html" xmlns:lightbox="http://richfaces.org/sandbox/lightbox" | |
| 6 | + xmlns:a4j="http://richfaces.org/a4j" | |
| 7 | + xmlns:rich="http://richfaces.org/rich"> | |
| 8 | +<head> | |
| 9 | + <title>Lightbox sample</title> | |
| 10 | + <style type="text/css"> | |
| 11 | + #gallery ul { | |
| 12 | + list-style: none outside none; | |
| 13 | + } | |
| 14 | + | |
| 15 | + #gallery ul li { | |
| 16 | + display: inline; | |
| 17 | + } | |
| 18 | + | |
| 19 | + #gallery ul img { | |
| 20 | + border: 5px solid #3E3E3E; | |
| 21 | + border-bottom-width: 20px; | |
| 22 | + } | |
| 23 | + | |
| 24 | + #gallery ul a:hover img { | |
| 25 | + border: 5px solid #000; | |
| 26 | + border-bottom-width: 20px; | |
| 27 | + color: #FFFFFF; | |
| 28 | + } | |
| 29 | + | |
| 30 | + #gallery ul a:hover { | |
| 31 | + color: #FFFFFF; | |
| 32 | + } | |
| 33 | + | |
| 34 | + </style> | |
| 35 | +</head> | |
| 36 | + | |
| 37 | +<body> | |
| 38 | +<ui:include src="menu.xhtml"/> | |
| 39 | + | |
| 40 | +<div id="gallery"> | |
| 41 | + <ul> | |
| 42 | + <li> | |
| 43 | + <a href="photos/image1.jpg" title="Blue flower"> | |
| 44 | + <h:graphicImage value="photos/thumb_image1.jpg"/> | |
| 45 | + </a> | |
| 46 | + </li> | |
| 47 | + <li> | |
| 48 | + <a href="photos/image2.jpg" title="Red leafs"> | |
| 49 | + <h:graphicImage value="photos/thumb_image2.jpg"/> | |
| 50 | + </a> | |
| 51 | + </li> | |
| 52 | + <li> | |
| 53 | + <a href="photos/image3.jpg" title="Rain drops"> | |
| 54 | + <h:graphicImage value="photos/thumb_image3.jpg"/> | |
| 55 | + </a> | |
| 56 | + </li> | |
| 57 | + <li> | |
| 58 | + <a href="photos/image4.jpg" title="Fresh green"> | |
| 59 | + <h:graphicImage value="photos/thumb_image4.jpg"/> | |
| 60 | + </a> | |
| 61 | + </li> | |
| 62 | + <li> | |
| 63 | + <a href="photos/image5.jpg" title="More fresh green"> | |
| 64 | + <h:graphicImage value="photos/thumb_image5.jpg"/> | |
| 65 | + </a> | |
| 66 | + </li> | |
| 67 | + </ul> | |
| 68 | +</div> | |
| 69 | + | |
| 70 | + | |
| 71 | +<lightbox:lightbox id="lightbox" selector="#gallery a" containerBorderSize="#{config.containerBorderSize}" | |
| 72 | + containerResizeSpeed="#{config.containerResizeSpeed}" keyToClose="#{config.keyToClose}" | |
| 73 | + keyToNext="#{config.keyToNext}" keyToPrev="#{config.keyToPrev}" | |
| 74 | + overlayBgColor="#{config.overlayBgColor}" | |
| 75 | + overlayOpacity="#{config.overlayOpacity}" txtImage="#{config.txtImage}" txtOf="#{config.txtOf}" | |
| 76 | + imageBlank="#{config.imageBlank}" | |
| 77 | + imageBtnClose="#{config.imageBtnClose}" | |
| 78 | + imageBtnNext="#{config.imageBtnNext}" | |
| 79 | + imageBtnPrev="#{config.imageBtnPrev}" | |
| 80 | + imageLoading="#{config.imageLoading}" | |
| 81 | + /> | |
| 82 | + | |
| 83 | + | |
| 84 | +<h:form id="lightboxForm"> | |
| 85 | + | |
| 86 | + | |
| 87 | + <h:panelGrid columns="3"> | |
| 88 | + <h:outputLabel value="containerBorderSize" for="containerBorderSize"/> | |
| 89 | + <h:inputText id="containerBorderSize" value="#{config.containerBorderSize}"/> | |
| 90 | + <h:message for="containerBorderSize"/> | |
| 91 | + | |
| 92 | + <h:outputLabel value="containerResizeSpeed" for="containerResizeSpeed"/> | |
| 93 | + <h:inputText id="containerResizeSpeed" value="#{config.containerResizeSpeed}"/> | |
| 94 | + <h:message for="containerResizeSpeed"/> | |
| 95 | + | |
| 96 | + <h:outputLabel value="keyToClose" for="keyToClose"/> | |
| 97 | + <h:inputText id="keyToClose" value="#{config.keyToClose}"/> | |
| 98 | + <h:message for="keyToClose"/> | |
| 99 | + | |
| 100 | + <h:outputLabel value="keyToNext" for="keyToNext"/> | |
| 101 | + <h:inputText id="keyToNext" value="#{config.keyToNext}"/> | |
| 102 | + <h:message for="keyToNext"/> | |
| 103 | + | |
| 104 | + <h:outputLabel value="" for="keyToPrev"/> | |
| 105 | + <h:inputText id="keyToPrev" value="#{config.keyToPrev}"/> | |
| 106 | + <h:message for="keyToPrev"/> | |
| 107 | + | |
| 108 | + <h:outputLabel value="overlayBgColor" for="overlayBgColor"/> | |
| 109 | + <h:inputText id="overlayBgColor" value="#{config.overlayBgColor}"/> | |
| 110 | + <h:message for="overlayBgColor"/> | |
| 111 | + | |
| 112 | + <h:outputLabel value="overlayOpacity" for="overlayOpacity"/> | |
| 113 | + <h:inputText id="overlayOpacity" value="#{config.overlayOpacity}"/> | |
| 114 | + <h:message for="overlayOpacity"/> | |
| 115 | + | |
| 116 | + <h:outputLabel value="txtImage" for="txtImage"/> | |
| 117 | + <h:inputText id="txtImage" value="#{config.txtImage}"/> | |
| 118 | + <h:message for="txtImage"/> | |
| 119 | + | |
| 120 | + <h:outputLabel value="txtOf" for="txtOf"/> | |
| 121 | + <h:inputText id="txtOf" value="#{config.txtOf}"/> | |
| 122 | + <h:message for="txtOf"/> | |
| 123 | + | |
| 124 | + <h:outputLabel value="imageBlank" for="imageBlank"/> | |
| 125 | + <h:inputText id="imageBlank" value="#{config.imageBlank}"/> | |
| 126 | + <h:message for="imageBlank"/> | |
| 127 | + | |
| 128 | + <h:outputLabel value="imageBtnClose" for="imageBtnClose"/> | |
| 129 | + <h:inputText id="imageBtnClose" value="#{config.imageBtnClose}"/> | |
| 130 | + <h:message for="imageBtnClose"/> | |
| 131 | + | |
| 132 | + <h:outputLabel value="imageBtnNext" for="imageBtnNext"/> | |
| 133 | + <h:inputText id="imageBtnNext" value="#{config.imageBtnNext}"/> | |
| 134 | + <h:message for="imageBtnNext"/> | |
| 135 | + | |
| 136 | + <h:outputLabel value="imageBtnPrev" for="imageBtnPrev"/> | |
| 137 | + <h:inputText id="imageBtnPrev" value="#{config.imageBtnPrev}"/> | |
| 138 | + <h:message for="imageBtnPrev"/> | |
| 139 | + | |
| 140 | + <h:outputLabel value="imageLoading" for="imageLoading"/> | |
| 141 | + <h:inputText id="imageLoading" value="#{config.imageLoading}"/> | |
| 142 | + <h:message for="imageLoading"/> | |
| 143 | + | |
| 144 | + <a4j:commandButton value="Submit" reRender="lightbox,lightboxForm"/> | |
| 145 | + </h:panelGrid> | |
| 146 | +</h:form> | |
| 147 | + | |
| 148 | +<rich:insert src="/sample_1.xhtml" highlight="html"/> | |
| 149 | + | |
| 150 | +</body> | |
| 151 | +</html> | ... | ... |
samples/notify-sample/pom.xml
0 → 100644
| 1 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 2 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |
| 3 | + <parent> | |
| 4 | + <groupId>org.richfaces.sandbox.bernard</groupId> | |
| 5 | + <artifactId>parent</artifactId> | |
| 6 | + <version>3.3.4-SNAPSHOT</version> | |
| 7 | + <relativePath>../pom.xml</relativePath> | |
| 8 | + </parent> | |
| 9 | + <modelVersion>4.0.0</modelVersion> | |
| 10 | + <groupId>org.richfaces.sandbox.ui</groupId> | |
| 11 | + <artifactId>notify-sample</artifactId> | |
| 12 | + <packaging>war</packaging> | |
| 13 | + <name>notify-sample Maven Webapp</name> | |
| 14 | + <build> | |
| 15 | + <finalName>${project.artifactId}</finalName> | |
| 16 | + </build> | |
| 17 | + <dependencies> | |
| 18 | + <dependency> | |
| 19 | + <groupId>org.richfaces.ui</groupId> | |
| 20 | + <artifactId>richfaces-ui</artifactId> | |
| 21 | + </dependency> | |
| 22 | + <dependency> | |
| 23 | + <groupId>org.richfaces.sandbox.ui</groupId> | |
| 24 | + <artifactId>notify</artifactId> | |
| 25 | + <version>${project.version}</version> | |
| 26 | + </dependency> | |
| 27 | + <dependency> | |
| 28 | + <groupId>com.uwyn</groupId> | |
| 29 | + <artifactId>jhighlight</artifactId> | |
| 30 | + <version>1.0</version> | |
| 31 | + </dependency> | |
| 32 | + </dependencies> | |
| 33 | +</project> | |
| 34 | + | ... | ... |
| 1 | +package org.richfaces.sandbox.notify; | |
| 2 | + | |
| 3 | +import javax.faces.application.FacesMessage; | |
| 4 | +import javax.faces.context.FacesContext; | |
| 5 | + | |
| 6 | +public class Greeter { | |
| 7 | + | |
| 8 | + private String greeting; | |
| 9 | + private boolean nonblocking; | |
| 10 | + private boolean showDetail; | |
| 11 | + private boolean showSummary = true; | |
| 12 | + private boolean sticky; | |
| 13 | + private boolean showHistory = true; | |
| 14 | + private boolean showShadow = true; | |
| 15 | + private boolean showCloseButton = true; | |
| 16 | + private Integer stayTime = 3000; | |
| 17 | + private Integer animationSpeed = 100; | |
| 18 | + private Integer interval = 2000; | |
| 19 | + private Integer delay = 0; | |
| 20 | + private Double nonblockingOpacity = .3; | |
| 21 | + private String appearAnimation = "fade"; | |
| 22 | + private String hideAnimation = "show"; | |
| 23 | + private String stackDir1 = "down"; | |
| 24 | + private String stackDir2 = "left"; | |
| 25 | + private String stackPush = "top"; | |
| 26 | + private String styleClass; | |
| 27 | + private String stackStyleClass; | |
| 28 | + private String title = "Sample title"; | |
| 29 | + private String text = "Sample text, not too short, but not too long."; | |
| 30 | + | |
| 31 | + public String sayHello() { | |
| 32 | + FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Hello", greeting)); | |
| 33 | + return "hello"; | |
| 34 | + } | |
| 35 | + | |
| 36 | + public String warnMe() { | |
| 37 | + FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Stop!", greeting)); | |
| 38 | + return "warn"; | |
| 39 | + } | |
| 40 | + | |
| 41 | + public String sayError() { | |
| 42 | + FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "This is outrage", greeting)); | |
| 43 | + return "error"; | |
| 44 | + } | |
| 45 | + | |
| 46 | + public String sayFatal() { | |
| 47 | + FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, "Fatality", greeting)); | |
| 48 | + return "fatal"; | |
| 49 | + } | |
| 50 | + | |
| 51 | + public String getGreeting() { | |
| 52 | + return greeting; | |
| 53 | + } | |
| 54 | + | |
| 55 | + public void setGreeting(String greeting) { | |
| 56 | + this.greeting = greeting; | |
| 57 | + } | |
| 58 | + | |
| 59 | + public boolean isNonblocking() { | |
| 60 | + return nonblocking; | |
| 61 | + } | |
| 62 | + | |
| 63 | + public void setNonblocking(boolean nonblocking) { | |
| 64 | + this.nonblocking = nonblocking; | |
| 65 | + } | |
| 66 | + | |
| 67 | + public boolean isShowDetail() { | |
| 68 | + return showDetail; | |
| 69 | + } | |
| 70 | + | |
| 71 | + public void setShowDetail(boolean showDetail) { | |
| 72 | + this.showDetail = showDetail; | |
| 73 | + } | |
| 74 | + | |
| 75 | + public void setShowSummary(boolean showSummary) { | |
| 76 | + this.showSummary = showSummary; | |
| 77 | + } | |
| 78 | + | |
| 79 | + public boolean isSticky() { | |
| 80 | + return sticky; | |
| 81 | + } | |
| 82 | + | |
| 83 | + public void setSticky(boolean sticky) { | |
| 84 | + this.sticky = sticky; | |
| 85 | + } | |
| 86 | + | |
| 87 | + public Integer getStayTime() { | |
| 88 | + return stayTime; | |
| 89 | + } | |
| 90 | + | |
| 91 | + public void setStayTime(Integer stayTime) { | |
| 92 | + this.stayTime = stayTime; | |
| 93 | + } | |
| 94 | + | |
| 95 | + public boolean isShowSummary() { | |
| 96 | + return showSummary; | |
| 97 | + } | |
| 98 | + | |
| 99 | + public String getAppearAnimation() { | |
| 100 | + return appearAnimation; | |
| 101 | + } | |
| 102 | + | |
| 103 | + public void setAppearAnimation(String appearAnimation) { | |
| 104 | + this.appearAnimation = appearAnimation; | |
| 105 | + } | |
| 106 | + | |
| 107 | + public boolean isShowHistory() { | |
| 108 | + return showHistory; | |
| 109 | + } | |
| 110 | + | |
| 111 | + public void setShowHistory(boolean showHistory) { | |
| 112 | + this.showHistory = showHistory; | |
| 113 | + } | |
| 114 | + | |
| 115 | + public boolean isShowShadow() { | |
| 116 | + return showShadow; | |
| 117 | + } | |
| 118 | + | |
| 119 | + public void setShowShadow(boolean showShadow) { | |
| 120 | + this.showShadow = showShadow; | |
| 121 | + } | |
| 122 | + | |
| 123 | + public boolean isShowCloseButton() { | |
| 124 | + return showCloseButton; | |
| 125 | + } | |
| 126 | + | |
| 127 | + public void setShowCloseButton(boolean showCloseButton) { | |
| 128 | + this.showCloseButton = showCloseButton; | |
| 129 | + } | |
| 130 | + | |
| 131 | + public Double getNonblockingOpacity() { | |
| 132 | + return nonblockingOpacity; | |
| 133 | + } | |
| 134 | + | |
| 135 | + public void setNonblockingOpacity(Double nonblockingOpacity) { | |
| 136 | + this.nonblockingOpacity = nonblockingOpacity; | |
| 137 | + } | |
| 138 | + | |
| 139 | + public String getStackDir1() { | |
| 140 | + return stackDir1; | |
| 141 | + } | |
| 142 | + | |
| 143 | + public void setStackDir1(String stackDir1) { | |
| 144 | + this.stackDir1 = stackDir1; | |
| 145 | + } | |
| 146 | + | |
| 147 | + public String getStackDir2() { | |
| 148 | + return stackDir2; | |
| 149 | + } | |
| 150 | + | |
| 151 | + public void setStackDir2(String stackDir2) { | |
| 152 | + this.stackDir2 = stackDir2; | |
| 153 | + } | |
| 154 | + | |
| 155 | + public String getStackPush() { | |
| 156 | + return stackPush; | |
| 157 | + } | |
| 158 | + | |
| 159 | + public void setStackPush(String stackPush) { | |
| 160 | + this.stackPush = stackPush; | |
| 161 | + } | |
| 162 | + | |
| 163 | + public String getStyleClass() { | |
| 164 | + return styleClass; | |
| 165 | + } | |
| 166 | + | |
| 167 | + public void setStyleClass(String styleClass) { | |
| 168 | + this.styleClass = styleClass; | |
| 169 | + } | |
| 170 | + | |
| 171 | + public Integer getAnimationSpeed() { | |
| 172 | + return animationSpeed; | |
| 173 | + } | |
| 174 | + | |
| 175 | + public void setAnimationSpeed(Integer animationSpeed) { | |
| 176 | + this.animationSpeed = animationSpeed; | |
| 177 | + } | |
| 178 | + | |
| 179 | + public String getHideAnimation() { | |
| 180 | + return hideAnimation; | |
| 181 | + } | |
| 182 | + | |
| 183 | + public void setHideAnimation(String hideAnimation) { | |
| 184 | + this.hideAnimation = hideAnimation; | |
| 185 | + } | |
| 186 | + | |
| 187 | + /** | |
| 188 | + * @return the title | |
| 189 | + */ | |
| 190 | + public String getTitle() { | |
| 191 | + return title; | |
| 192 | + } | |
| 193 | + | |
| 194 | + /** | |
| 195 | + * @param title the title to set | |
| 196 | + */ | |
| 197 | + public void setTitle(String title) { | |
| 198 | + this.title = title; | |
| 199 | + } | |
| 200 | + | |
| 201 | + /** | |
| 202 | + * @return the text | |
| 203 | + */ | |
| 204 | + public String getText() { | |
| 205 | + return text; | |
| 206 | + } | |
| 207 | + | |
| 208 | + /** | |
| 209 | + * @param text the text to set | |
| 210 | + */ | |
| 211 | + public void setText(String text) { | |
| 212 | + this.text = text; | |
| 213 | + } | |
| 214 | + | |
| 215 | + public Integer getInterval() { | |
| 216 | + return interval; | |
| 217 | + } | |
| 218 | + | |
| 219 | + public void setInterval(Integer interval) { | |
| 220 | + this.interval = interval; | |
| 221 | + } | |
| 222 | + | |
| 223 | + public Integer getDelay() { | |
| 224 | + return delay; | |
| 225 | + } | |
| 226 | + | |
| 227 | + public void setDelay(Integer delay) { | |
| 228 | + this.delay = delay; | |
| 229 | + } | |
| 230 | + | |
| 231 | + public String getStackStyleClass() { | |
| 232 | + return stackStyleClass; | |
| 233 | + } | |
| 234 | + | |
| 235 | + public void setStackStyleClass(String stackStyleClass) { | |
| 236 | + this.stackStyleClass = stackStyleClass; | |
| 237 | + } | |
| 238 | +} | ... | ... |
Please
register
or
login
to post a comment