Tento článek navazuje na článek
"Dokáže tohle váš webový framework?".
Tentokrát se podíváme na komponenty fileUpload
, hotKey
, inputNumberSpinner
, insert
,
progressBar
a tabPanel
.
FileUpload
Pro upload souborů na server je komponenta fileUpload
:
<rich:fileUpload fileUploadListener="#{fileUploadBean.listener}" id="upload" immediateUpload="false" maxFilesQuantity="3"
acceptedTypes="jpg,gif,png"/>
Zobrazí se tlačítko, jehož stisk vyvolá standardni
"Open File" dialog. Po výběru souboru máme
možnost provést upload:
Zpracování souboru probíhá v JSF managed beaně:
public class FileUploadBean {
public void listener(UploadEvent e) {
UploadItem item = e.getUploadItem();
//...
}
}
Hot keys
Pomocí tagu hotKey
lze reagovat na
stisk klávesy:
<script type="text/javascript">
function enlarge(id) {
var img = document.getElementById(id);
img.width *= 1.05;
img.height *= 1.05;
}
function shrink(id) {
var img = document.getElementById(id);
img.width *= 0.95;
img.height *= 0.95;
}
</script>
<h:graphicImage id="logo" value="images/logo240.gif"/>
<rich:hotKey key="ctrl+up" handler="enlarge('#{rich:clientId('logo')}');return false;"/>
<rich:hotKey key="ctrl+down" handler="shrink('#{rich:clientId('logo')}');return false;"/>
Spinner
Schází vám ve webových aplikacích ovládací prvky,
na které jste zvyklí? S RichFaces možná nebudou.
Např. spinner se vytvoří takto:
<rich:inputNumberSpinner value="#{car.speed}" minValue="20" maxValue="100" step="1"/>
Zobrazení zdrojáků
Potřebujete zobrazit na stránce zdrojový kód? S
komponentou insert
je to snadné. A
pokud přidáte k projektu knihovnu jhighlight, můžete mít i syntax
highlighting:
<rich:insert src="Program1.java" highlight="java"/>
Progress Bar
Provádíte operaci, která může trvat delší dobu a
chcete dát uživateli vědět, jak dlouho bude ještě
čekat? Následující kód zobrazí progressBar
a každé 2 sekundy jej
aktualizuje podle hodnoty property currentValue
beany progressBarBean
.
<h:form>
<a4j:outputPanel>
<rich:progressBar value="#{progressBarBean.currentValue}" interval="2000" label="#{progressBarBean.currentValue} %"
minValue="0" maxValue="100"/>
</a4j:outputPanel>
</h:form>
Tab Panel
Stýská se vám po panelu se záložkami? RichFaces jej
má:
<rich:tabPanel switchType="client">
<rich:tab label="Java">
Java is the best!
</rich:tab>
<rich:tab label="C#">
...
</rich:tab>
<rich:tab label="C++">
...
</rich:tab>
</rich:tabPanel>
Zaujaly vás komponenty RichFaces? Na http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/docs/devguide/en/html/index.html se s nimi můžete seznámit více.