Toolbar"

From Documentation
m
m
Line 141: Line 141:
 
</source>
 
</source>
  
 +
====I18N====
 +
Each button/menuitem map to a key, developer could browser all I18 keys by <javadoc directory="zss"  method="getLabelKeys">org.zkoss.zss.ui.Action</javadoc>
 +
 +
Here is partial keys for toolbar
 +
{| border="1"
 +
|-
 +
! Action  || I18 Key
 +
|-
 +
|| Paste || zss.paste
 +
|-
 +
|| Paste Formula || zss.pasteFormula
 +
|-
 +
|| Paste Value || zss.pasteValue
 +
|-
 +
|| Paste All Except Border || zss.pasteAllExceptBorder
 +
|-
 +
|| Paste Transpose || zss.pasteTranspose
 +
|-
 +
|| Paste Special || zss.pasteSpecial
 +
|-
 +
|| Merge AndCenter || zss.mergeAndCenter
 +
|-
 +
|| Merge Across || zss.mergeAcross
 +
|-
 +
|| Merge Cell|| mergeCell
 +
|-
 +
|| Unmerge Cell || unmergeCell
 +
|-
 +
|| Insert || zss.insert
 +
|-
 +
|| Shift Cell Left || zss.insertSheetRow
 +
|-
 +
|| Shift Cell Up || zss.shiftCellUp
 +
|-
 +
|| Clear Context || zss.clearContent
 +
|-
 +
|| Format Cell || zss.formatCell
 +
|-
 +
|| Row Height || zss.rowHeight
 +
|-
 +
|| Column Width || zss.columnWidth
 +
|-
 +
|| Hide Row || zss.hideRow
 +
|-
 +
|| Unhide Row || zss.unhideRow
 +
|-
 +
|| Hide Column || zss.hideColumn
 +
|-
 +
|| Unhide Column || zss.unhideColumn
 +
|-
 +
|| Filter || zss.filter
 +
|-
 +
|| Reapply Filter || zss.reapplyFilter
 +
|-
 +
|| Sort || zss.sort
 +
|-
 +
|| Sort Ascending || zss.sortAscending
 +
|-
 +
|| Sort Descending|| zss.sortDescending
 +
|-
 +
|| Custom Sort|| zss.customSort
 +
|-
 +
|| Hyperlink || zss.hyperlink
 +
|}
 +
 +
Refer to sample [http://code.google.com/p/zkbooks/source/browse/trunk/zssessentials/examples/WebContent/WEB-INF/i3-label.properties i3-label.properties]
 
===ZUML===
 
===ZUML===
 
Here is a sample example ZUL file
 
Here is a sample example ZUL file

Revision as of 04:16, 5 April 2012

WarningTriangle-32x32.png This page is under construction, so we cannot guarantee the accuracy of the content!



Purpose

ZK Spreadsheet supports various toolbar buttons for user to perform actions.

Show toolbar

Use Spreadsheet.setShowToolbar to show toolbar.

Action Handler

The Spreadsheet use a default ActionHandler to perform toolbar button's action. Developer could use customized ActionHandler by API Spreadsheet.setActionHandler or by library property org.zkoss.zss.ui.ActionHandler.class, refer to sample zk.xml

Each toolbar's button represent a action, the ActionHandler process action when user click it.


For example, the paste toolbarbutton and menuitem represent Action.PASTE, deveoper could override default behavior by override ActionHandler.doPaste
ZKSsEss Spreadsheet Toolbar paste.png

New Book

ZKSsEss Spreadsheet Toolbar newBook.png
The default ActionHandler does nothing when user click the button, developer could override ActionHandler.doNewBook

	@Override
	public void doNewBook() {
		getSpreadsheet().setSrc("/WEB-INF/excel/config/blank.xlsx");
	}

Refer to sample code CustomizedActionHandler.java

Save Book

ZKSsEss Spreadsheet Toolbar saveBook.png
The default ActionHandler does nothing when user click the button, developer could override ActionHandler.doSaveBook

	@Override
	public void doSaveBook() {
		Spreadsheet spreadsheet = getSpreadsheet();
		if (spreadsheet.getBook() != null) {
			final String filePath = Executions.getCurrent().getDesktop().getWebApp().getRealPath(spreadsheet.getSrc());
			
			Exporter exporter = Exporters.getExporter("excel");
			FileOutputStream outputStream = null;
			try {
				outputStream = new FileOutputStream(new File(filePath));
				exporter.export(spreadsheet.getBook(), outputStream);
				try {
					Messagebox.show("Saved");
				} catch (InterruptedException e) {
				}
			} catch (FileNotFoundException e) {
				try {
					Messagebox.show("Save excel failed");
				} catch (InterruptedException e1) {
				}
			} finally {
				if (outputStream != null) {
					try {
						outputStream.close();
					} catch (IOException e) {
					}
				}
			}
		}			
	}

Refer to Export to Excel sample code CustomizedActionHandler.java

Export PDF

ZKSsEss Spreadsheet Toolbar exportPDF.png
The default ActionHandler does nothing when user click the button, developer could override ActionHandler.doExportPDF

	@Override
	public void doExportPDF(Rect selection) {
		Spreadsheet spreadsheet = getSpreadsheet();
		if (spreadsheet.getBook() != null && validSelection(selection)) {
			ExportPDFDialog dialog = new ExportPDFDialog(selection);
			//omit
		}
	}

Refer to Export to PDF and sample code exportPDFDialog.zulCustomizedActionHandler.java

Paste Special

ZKSsEss Spreadsheet Toolbar pasteSpecial.png
The default ActionHandler does nothing when user click the button, developer could override ActionHandler.doPasteSpecial

	@Override
	public void doPasteSpecial(Rect selection) {
		Spreadsheet spreadsheet = getSpreadsheet();
		if (spreadsheet.getBook() != null && validSelection(selection)) {
			PasteSpecialDialog dialog = new PasteSpecialDialog(selection);
			//omit
		}
	}

Refer to sample code pasteSpecialDialog.zul and CustomizedActionHandler.java

Custom Sort

ZKSsEss Spreadsheet Toolbar customSort.png
The default ActionHandler does nothing when user click the button, developer could override ActionHandler.doCustomSort

	@Override
	public void doCustomSort(Rect selection) {
		Spreadsheet spreadsheet = getSpreadsheet();
		if (spreadsheet.getBook() != null && validSelection(selection)) {
			CustomSortDialog dialog = new CustomSortDialog(selection);
			//omit	
		}
	}

Refer to sample code customSortDialog.zul and CustomizedActionHandler.java

Hyperlink

ZKSsEss Spreadsheet Toolbar hyperlink.png
The default ActionHandler does nothing when user click the button, developer could override ActionHandler.doHyperlink

	@Override
	public void doHyperlink(Rect selection) {
		Spreadsheet spreadsheet = getSpreadsheet();
		if (spreadsheet.getBook() != null && validSelection(selection)) {
			InsertHyperlinkDialog dialog = new InsertHyperlinkDialog(selection);
			//omit	
		}
	}

I18N

Each button/menuitem map to a key, developer could browser all I18 keys by Action.getLabelKeys

Here is partial keys for toolbar

Action I18 Key
Paste zss.paste
Paste Formula zss.pasteFormula
Paste Value zss.pasteValue
Paste All Except Border zss.pasteAllExceptBorder
Paste Transpose zss.pasteTranspose
Paste Special zss.pasteSpecial
Merge AndCenter zss.mergeAndCenter
Merge Across zss.mergeAcross
Merge Cell mergeCell
Unmerge Cell unmergeCell
Insert zss.insert
Shift Cell Left zss.insertSheetRow
Shift Cell Up zss.shiftCellUp
Clear Context zss.clearContent
Format Cell zss.formatCell
Row Height zss.rowHeight
Column Width zss.columnWidth
Hide Row zss.hideRow
Unhide Row zss.unhideRow
Hide Column zss.hideColumn
Unhide Column zss.unhideColumn
Filter zss.filter
Reapply Filter zss.reapplyFilter
Sort zss.sort
Sort Ascending zss.sortAscending
Sort Descending zss.sortDescending
Custom Sort zss.customSort
Hyperlink zss.hyperlink

Refer to sample i3-label.properties

ZUML

Here is a sample example ZUL file

<zk>
	<window vflex="1" width="100%" apply="org.zkoss.zssessentials.config.ToolbarComposer">
		<button id="toggleToolbar" label="Toggle toolbar"/>
		<spreadsheet showToolbar="true"
			id="ss" vflex="true" width="100%"
			src="/WEB-INF/excel/config/ZSS-demo_sample.xlsx" maxcolumns="40" maxrows="200"
			></spreadsheet>
	</window>
</zk>

Composer

The composer use Spreadsheet.setShowToolbar to show or hide toolbar.

	public void onClick$toggleToolbar() {
		boolean isShowToolbar = spreadsheet.isShowToolbar();
		spreadsheet.setShowToolbar(!isShowToolbar);
	}

See the full source code for Composer here

Version History

Last Update : 2012/04/05


Version Date Content
2.3.0 April, 2012 Toolbar
     


All source code listed in this book is at Github.


Last Update : 2012/04/05

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.