Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.mihalis.opal/src/test/java/org/mihalis/opal/preferenceWindow/PreferenceWindowSnippet.java')
-rw-r--r--org.mihalis.opal/src/test/java/org/mihalis/opal/preferenceWindow/PreferenceWindowSnippet.java278
1 files changed, 278 insertions, 0 deletions
diff --git a/org.mihalis.opal/src/test/java/org/mihalis/opal/preferenceWindow/PreferenceWindowSnippet.java b/org.mihalis.opal/src/test/java/org/mihalis/opal/preferenceWindow/PreferenceWindowSnippet.java
new file mode 100644
index 0000000..e905347
--- /dev/null
+++ b/org.mihalis.opal/src/test/java/org/mihalis/opal/preferenceWindow/PreferenceWindowSnippet.java
@@ -0,0 +1,278 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Laurent CARON
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Laurent CARON (laurent.caron at gmail dot com) - initial API and implementation
+ *******************************************************************************/
+package org.mihalis.opal.preferenceWindow;
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.mihalis.opal.opalDialog.Dialog;
+import org.mihalis.opal.preferenceWindow.enabler.EnabledIfEquals;
+import org.mihalis.opal.preferenceWindow.enabler.EnabledIfTrue;
+import org.mihalis.opal.preferenceWindow.widgets.PWButton;
+import org.mihalis.opal.preferenceWindow.widgets.PWCheckbox;
+import org.mihalis.opal.preferenceWindow.widgets.PWColorChooser;
+import org.mihalis.opal.preferenceWindow.widgets.PWCombo;
+import org.mihalis.opal.preferenceWindow.widgets.PWDirectoryChooser;
+import org.mihalis.opal.preferenceWindow.widgets.PWFileChooser;
+import org.mihalis.opal.preferenceWindow.widgets.PWFloatText;
+import org.mihalis.opal.preferenceWindow.widgets.PWFontChooser;
+import org.mihalis.opal.preferenceWindow.widgets.PWIntegerText;
+import org.mihalis.opal.preferenceWindow.widgets.PWLabel;
+import org.mihalis.opal.preferenceWindow.widgets.PWPasswordText;
+import org.mihalis.opal.preferenceWindow.widgets.PWRadio;
+import org.mihalis.opal.preferenceWindow.widgets.PWScale;
+import org.mihalis.opal.preferenceWindow.widgets.PWSeparator;
+import org.mihalis.opal.preferenceWindow.widgets.PWSpinner;
+import org.mihalis.opal.preferenceWindow.widgets.PWStringText;
+import org.mihalis.opal.preferenceWindow.widgets.PWTextarea;
+import org.mihalis.opal.preferenceWindow.widgets.PWURLText;
+import org.mihalis.opal.utils.SWTGraphicUtil;
+
+/**
+ * This snippet demonstrates the PreferenceWindow widget
+ *
+ */
+public class PreferenceWindowSnippet {
+
+ /**
+ * @param args
+ */
+ public static void main(final String[] args) {
+
+ Locale.setDefault(Locale.ENGLISH);
+
+ final Display display = new Display();
+ final Shell shell = new Shell(display);
+ shell.setText("PreferenceWindow snippet");
+ shell.setLayout(new FillLayout(SWT.VERTICAL));
+
+ final Button button1 = new Button(shell, SWT.PUSH);
+ button1.setText("Open preference window");
+
+ final Map<String, Object> data = fillData();
+
+ button1.addSelectionListener(new SelectionAdapter() {
+
+ /**
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(final SelectionEvent e) {
+ final PreferenceWindow window = PreferenceWindow.create(shell, data);
+
+ createDocumentTab(window);
+ createInfoTab(window);
+ createTerminalTab(window);
+ createPrinterTab(window);
+ createSystemTab(window);
+
+ window.setSelectedTab(2);
+
+ window.open();
+ }
+ });
+
+ shell.pack();
+ shell.open();
+ SWTGraphicUtil.centerShell(shell);
+
+ while (!shell.isDisposed()) {
+ if (!display.readAndDispatch()) {
+ display.sleep();
+ }
+ }
+
+ display.dispose();
+ }
+
+ private static Map<String, Object> fillData() {
+ final Map<String, Object> data = new HashMap<String, Object>();
+ data.put("text", "A string");
+ data.put("int", new Integer(42)); // NOSONAR
+ data.put("float", new Float(3.14));
+ data.put("url", "http://www.google.fr/");
+ data.put("password", "password"); // NOSONAR
+ data.put("directory", "");
+ data.put("file", "");
+ data.put("textarea", "long long\nlong long\nlong long\ntext...");
+ data.put("comboReadOnly", "Value 1");
+ data.put("combo", "Other Value");
+
+ data.put("cb1", new Boolean(true));
+ // cb2 is not initialized
+ data.put("slider", new Integer(40));
+ data.put("spinner", new Integer(30));
+ data.put("color", new RGB(120, 15, 30));
+ // font is not initialized
+
+ data.put("radio", "Radio button 3");
+ data.put("cb3", new Boolean(true));
+
+ // cb4 to cb14 are not initialised
+
+ data.put("cacheSizeUnit", "Megabytes");
+ data.put("openMode", "Double click");
+
+ return data;
+ }
+
+ protected static void createDocumentTab(final PreferenceWindow window) {
+ final PWTab documentTab = window.addTab(
+ new Image(Display.getCurrent(),
+ PreferenceWindowSnippet.class.getClassLoader()
+ .getResourceAsStream("org/mihalis/opal/preferenceWindow/images/document.png")),
+ "Document");
+
+ documentTab.add(new PWLabel("Let's start with Text, Separator, Combo and button")).//
+ add(new PWStringText("String :", "text").setAlignment(GridData.FILL)).//
+ add(new PWIntegerText("Integer :", "int"));
+ documentTab.add(new PWFloatText("Float :", "float"));
+ documentTab.add(new PWURLText("URL :", "url"));
+ documentTab.add(new PWPasswordText("Password :", "password"));
+ documentTab.add(new PWDirectoryChooser("Directory :", "directory"));
+ documentTab.add(new PWFileChooser("File :", "file"));
+ documentTab.add(new PWTextarea("Textarea :", "textarea"));
+
+ documentTab.add(new PWSeparator());
+
+ documentTab.add(new PWCombo("Combo (read-only):", "comboReadOnly", "Value 1", "Value 2", "Value 3"));
+ documentTab
+ .add(new PWCombo("Combo (editable):", "combo", true, new Object[] { "Value 1", "Value 2", "Value 3" }));
+
+ documentTab.add(new PWSeparator("Titled separator"));
+ documentTab.add(new PWButton("First button", new SelectionAdapter() {
+
+ /**
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(final SelectionEvent e) {
+ Dialog.inform("Hi", "You pressed the first button");
+ }
+
+ }).setAlignment(GridData.END));
+ }
+
+ protected static void createInfoTab(final PreferenceWindow window) {
+ final PWTab infoTab = window.addTab(new Image(Display.getCurrent(), PreferenceWindowSnippet.class
+ .getClassLoader().getResourceAsStream("org/mihalis/opal/preferenceWindow/images/info.png")), "Info");
+
+ infoTab.add(new PWLabel("Checkboxes, Slider,Spinner, Color chooser, Font chooser"));
+ infoTab.add(new PWCheckbox("Checkbox 1", "cb1"));
+ infoTab.add(new PWCheckbox("Checkbox 2", "cb2"));
+
+ infoTab.add(new PWSeparator());
+
+ infoTab.add(new PWScale("Slider : ", "slider", 0, 100, 10));
+ infoTab.add(new PWSpinner("Spinner :", "spinner", 0, 100));
+
+ infoTab.add(new PWSeparator());
+
+ infoTab.add(new PWColorChooser("Color :", "color"));
+ infoTab.add(new PWFontChooser("Font :", "font"));
+
+ }
+
+ protected static void createTerminalTab(final PreferenceWindow window) {
+ final PWTab terminalTab = window.addTab(
+ new Image(Display.getCurrent(),
+ PreferenceWindowSnippet.class.getClassLoader()
+ .getResourceAsStream("org/mihalis/opal/preferenceWindow/images/openterm.png")),
+ "Terminal");
+
+ terminalTab.add(new PWLabel("Group, radio, indentation and group of buttons in a row"));
+
+ final PWGroup group = new PWGroup("Group of buttons");
+ group.add(new PWRadio("Radio buttons:", "radio", "Radio button 1", "Radio button 2", "Radio button 3"));
+ terminalTab.add(group);
+
+ terminalTab.add(new PWCheckbox("Checkbox 3 (indented)", "cb3").setIndent(30).setWidth(200));
+
+ terminalTab.add(new PWRow().//
+ add(new PWButton("First button", new SelectionAdapter() {
+ })).//
+ add(new PWButton("Second button", new SelectionAdapter() {
+ })).//
+ add(new PWButton("Third button", new SelectionAdapter() {
+ })));
+
+ }
+
+ protected static void createPrinterTab(final PreferenceWindow window) {
+ final PWTab printerTab = window.addTab(
+ new Image(Display.getCurrent(),
+ PreferenceWindowSnippet.class.getClassLoader()
+ .getResourceAsStream("org/mihalis/opal/preferenceWindow/images/printer.png")),
+ "Printer");
+
+ printerTab.add(new PWLabel("Play <i>with</i> <b>checkboxes</b>"));
+
+ final PWGroup group = new PWGroup(false);
+ group.add(new PWRow().add(new PWCheckbox("First choice", "cb4")).add(new PWCheckbox("Second choice", "cb5")));
+ group.add(new PWRow().add(new PWCheckbox("Third choice", "cb6")).add(new PWCheckbox("Fourth choice", "cb7")));
+ group.add(new PWRow().add(new PWCheckbox("Fifth choice", "cb8")).add(new PWCheckbox("Sixth choice", "cb9")));
+ group.add(
+ new PWRow().add(new PWCheckbox("Seventh choice", "cb10")).add(new PWCheckbox("Eighth choice", "cb11")));
+ printerTab.add(group);
+
+ printerTab.add(new PWRow().//
+ add(new PWCheckbox("Automatically check for new versions", "cb12").setWidth(300)).//
+ add(new PWButton("Check for updates...", new SelectionAdapter() {
+ }).setWidth(250).setAlignment(GridData.END)));
+
+ printerTab.add(new PWSeparator());
+
+ final PWGroup group2 = new PWGroup(false);
+ group2.add(new PWRow().add(new PWLabel("Aligned checkbox")).add(new PWCheckbox("Bla bla bla 1", "cb13")));
+ group2.add(new PWRow().add(new PWLabel("")).add(new PWCheckbox("Bla bla bla 2", "cb14")));
+ printerTab.add(group2);
+ }
+
+ protected static void createSystemTab(final PreferenceWindow window) {
+ final PWTab systemTab = window.addTab(new Image(Display.getCurrent(), PreferenceWindowSnippet.class
+ .getClassLoader().getResourceAsStream("org/mihalis/opal/preferenceWindow/images/system.png")),
+ "System");
+
+ systemTab.add(new PWLabel("Rows..."));
+
+ systemTab.add(new PWRow()
+ .add(new PWCombo("Cache size", "cacheSize", true, new Object[] { "128", "256", "512", "1024" })).//
+ add(new PWCombo(null, "cacheSizeUnit", "Bytes", "Kilobytes", "Megabytes")));
+
+ systemTab.add(new PWRow().//
+ add(new PWCombo("Display:", "display", "10", "20", "30", "40", "50")).//
+ add(new PWLabel("per page")));
+
+ systemTab.add(new PWSeparator());
+
+ systemTab.add(new PWLabel("Enabled/disabled..."));
+
+ systemTab.add(new PWCheckbox("Show information", "show").setWidth(150));
+ systemTab.add(new PWGroup("Open Mode").setEnabler(new EnabledIfTrue("show")).//
+ add(new PWRadio(null, "openMode", "Double click", "Single click")).//
+ add(new PWCheckbox("Select on hover", "selectonhover").setIndent(10).setWidth(200)
+ .setEnabler(new EnabledIfEquals("openMode", "Single click")))
+ .//
+ add(new PWCheckbox("Open when using arrow keys", "openarrow").setIndent(10).setWidth(200)
+ .setEnabler(new EnabledIfEquals("openMode", "Single click"))));
+ }
+}

Back to the top