+package eu.etaxonomy.taxeditor;\r
+\r
+import org.eclipse.jface.resource.JFaceResources;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.layout.FillLayout;\r
+import org.eclipse.swt.layout.GridData;\r
+import org.eclipse.swt.layout.GridLayout;\r
+import org.eclipse.swt.widgets.Button;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Label;\r
+import org.eclipse.swt.widgets.Text;\r
+import org.eclipse.ui.forms.FormColors;\r
+import org.eclipse.ui.forms.ManagedForm;\r
+import org.eclipse.ui.forms.events.ExpansionAdapter;\r
+import org.eclipse.ui.forms.events.ExpansionEvent;\r
+import org.eclipse.ui.forms.events.HyperlinkAdapter;\r
+import org.eclipse.ui.forms.events.HyperlinkEvent;\r
+import org.eclipse.ui.forms.widgets.ExpandableComposite;\r
+import org.eclipse.ui.forms.widgets.Form;\r
+import org.eclipse.ui.forms.widgets.FormText;\r
+import org.eclipse.ui.forms.widgets.FormToolkit;\r
+import org.eclipse.ui.forms.widgets.Hyperlink;\r
+import org.eclipse.ui.forms.widgets.ScrolledForm;\r
+import org.eclipse.ui.forms.widgets.Section;\r
+import org.eclipse.ui.forms.widgets.TableWrapData;\r
+import org.eclipse.ui.forms.widgets.TableWrapLayout;\r
+import org.eclipse.ui.part.ViewPart;\r
+\r
+public class FormView extends ViewPart {\r
+ private FormToolkit toolkit;\r
+ // private Form form;\r
+ private ScrolledForm form;\r
+ private ScrolledPropertiesBlock block;\r
+\r
+ public static final String ID = "eu.etaxonomy.taxeditor.formview";\r
+ \r
+ /**\r
+ * The constructor.\r
+ */\r
+ public FormView() {\r
+ /*block = new ScrolledPropertiesBlock();*/\r
+ }\r
+\r
+ /**\r
+ * This is a callback that will allow us to create the viewer and initialize\r
+ * it.\r
+ */\r
+ public void createPartControl(Composite parent) {\r
+ \r
+ toolkit = new FormToolkit(parent.getDisplay());\r
+ Composite container = toolkit.createComposite(parent, SWT.NONE);\r
+ container.setLayout(new FillLayout());\r
+ toolkit.paintBordersFor(container);\r
+\r
+ ScrolledForm form = toolkit.createScrolledForm(container);\r
+ form.getBody().setLayout(new FillLayout());\r
+ form.setText("MasterDetailsBlock example form");\r
+ \r
+ ManagedForm mform = new ManagedForm(toolkit, form) ; \r
+ \r
+ /*ScrolledPropertiesBlock block = new ScrolledPropertiesBlock();\r
+ block.createContent(mform);*/\r
+ \r
+ //\r
+ /*createActions();\r
+ initializeToolBar();\r
+ initializeMenu();*/ \r
+ \r
+ \r
+ /*toolkit = new FormToolkit(parent.getDisplay());\r
+ form = toolkit.createScrolledForm(parent);*/ \r
+ \r
+/* TableWrapData td = new TableWrapData();\r
+ Section section = toolkit.createSection(form.getBody(),\r
+ Section.DESCRIPTION | Section.TITLE_BAR | Section.TWISTIE\r
+ | Section.EXPANDED);\r
+ td = new TableWrapData(TableWrapData.FILL);\r
+ td.colspan = 2;\r
+ section.setLayoutData(td);\r
+ section.addExpansionListener(new ExpansionAdapter() {\r
+ public void expansionStateChanged(ExpansionEvent e) {\r
+ form.reflow(true);\r
+ }\r
+ });\r
+ section.setText("Section title");\r
+ section.setDescription("This is the description that goes "\r
+ + "below the title");\r
+ Composite sectionClient = toolkit.createComposite(section);\r
+ sectionClient.setLayout(new GridLayout());\r
+ section.setClient(sectionClient);\r
+ */ \r
+ \r
+ /*Label label = toolkit.createLabel(form.getBody(), "Text field label:");\r
+ final Text text = toolkit.createText(form.getBody(), "");\r
+ text.setText("value");*/\r
+ /*\r
+ final String[] names = new String[6];\r
+ names[0] = "Pilosella piloselloides (Vill.) Soják subsp. piloselloides";\r
+ names[1] = "Pilosella piloselloides subsp. bauhinii (Schult.) S. Bräut. & Greuter";\r
+ names[2] = "Pilosella piloselloides subsp. floccosa (Nägeli & Peter) S. Bräut. & Greuter";\r
+ names[3] = "Pilosella piloselloides subsp. magyarica (Peter) S. Bräut. & Greuter";\r
+ names[4] = "Pilosella piloselloides subsp. praealta (Gochnat) S. Bräut. & Greuter";\r
+ names[5] = "Pilosella piloselloides subsp. rubrobauhinii (Schelk. & Zahn) S. Bräut. & Greuter";\r
+ \r
+ TableWrapLayout layout = new TableWrapLayout();\r
+ form.getBody().setLayout(layout);\r
+ final Integer j = 1;\r
+ for (int i = 0; i < 5; i++) {\r
+ Hyperlink link = toolkit.createHyperlink(form.getBody(), names[i],\r
+ SWT.WRAP);\r
+ /*j = (Integer)i;\r
+ link.addHyperlinkListener(new HyperlinkAdapter() {\r
+ \r
+ public void linkActivated(HyperlinkEvent e) {\r
+ text.setText(Integer.toString(j));\r
+ }\r
+ });\r
+ }*/\r
+ \r
+ /*\r
+\r
+ \r
+ final Hyperlink link = toolkit.createHyperlink(form.getBody(), "Click here.",\r
+ SWT.WRAP);\r
+ \r
+ layout.numColumns = 2;\r
+ TableWrapData td = new TableWrapData();\r
+ td.colspan = 2;\r
+ link.setLayoutData(td);\r
+ Label label = toolkit.createLabel(form.getBody(), "Text field label:");\r
+ final Text text = toolkit.createText(form.getBody(), "");\r
+ text.setText("value");\r
+\r
+ final int tester = 2;\r
+ \r
+ link.addHyperlinkListener(new HyperlinkAdapter() {\r
+ \r
+ public void linkActivated(HyperlinkEvent e) {\r
+ text.setText(Integer.toString(tester));\r
+ }\r
+ });\r
+ */\r
+ /*\r
+ toolkit = new FormToolkit(parent.getDisplay());\r
+ form = toolkit.createScrolledForm(parent); // .createForm(parent); //\r
+ // alternate:\r
+ // createScrolledForm\r
+ form.setText("Hello, Eclipse Forms");\r
+ TableWrapLayout layout = new TableWrapLayout();\r
+ // GridLayout layout = new GridLayout();\r
+ form.getBody().setLayout(layout);\r
+ Hyperlink link = toolkit.createHyperlink(form.getBody(), "Click here.",\r
+ SWT.WRAP);\r
+ link.addHyperlinkListener(new HyperlinkAdapter() {\r
+ public void linkActivated(HyperlinkEvent e) {\r
+ System.out.println("Link activated!");\r
+ }\r
+ });\r
+ link.setText("This is an example of a form that is much longer "\r
+ + "and will need to wrap.");\r
+\r
+ layout.numColumns = 2;\r
+ TableWrapData td = new TableWrapData();\r
+ td.colspan = 2;\r
+ link.setLayoutData(td);\r
+\r
+ Label label = toolkit.createLabel(form.getBody(), "Text field label:");\r
+ Text text = toolkit.createText(form.getBody(), "");\r
+\r
+ td = new TableWrapData(TableWrapData.FILL_GRAB);\r
+ text.setLayoutData(td);\r
+\r
+ Button button = toolkit.createButton(form.getBody(),\r
+ "A checkbox in a form", SWT.CHECK);\r
+ td = new TableWrapData();\r
+ td.colspan = 2;\r
+ button.setLayoutData(td);\r
+\r
+ ExpandableComposite ec = toolkit.createExpandableComposite(form\r
+ .getBody(), ExpandableComposite.TREE_NODE\r
+ | ExpandableComposite.CLIENT_INDENT);\r
+ ec.setText("Expandable Composite title");\r
+ String ctext = "We will now create a somewhat long text so that "\r
+ + "we can use it as content for the expandable composite. "\r
+ + "Expandable composite is used to hide or show the text using the "\r
+ + "toggle control";\r
+ Label client = toolkit.createLabel(ec, ctext, SWT.WRAP);\r
+ ec.setClient(client);\r
+ td = new TableWrapData();\r
+ td.colspan = 2;\r
+ ec.setLayoutData(td);\r
+ ec.addExpansionListener(new ExpansionAdapter() {\r
+ public void expansionStateChanged(ExpansionEvent e) {\r
+ form.reflow(true);\r
+ }\r
+ });\r
+\r
+ Section section = toolkit.createSection(form.getBody(),\r
+ Section.DESCRIPTION | Section.TITLE_BAR | Section.TWISTIE\r
+ | Section.EXPANDED);\r
+ td = new TableWrapData(TableWrapData.FILL);\r
+ td.colspan = 2;\r
+ section.setLayoutData(td);\r
+ section.addExpansionListener(new ExpansionAdapter() {\r
+ public void expansionStateChanged(ExpansionEvent e) {\r
+ form.reflow(true);\r
+ }\r
+ });\r
+ section.setText("Section title");\r
+ section.setDescription("This is the description that goes "\r
+ + "below the title");\r
+ Composite sectionClient = toolkit.createComposite(section);\r
+ sectionClient.setLayout(new GridLayout());\r
+ button = toolkit.createButton(sectionClient, "Radio 1", SWT.RADIO);\r
+ button = toolkit.createButton(sectionClient, "Radio 2", SWT.RADIO);\r
+ section.setClient(sectionClient);\r
+\r
+ StringBuffer buf = new StringBuffer();\r
+ buf.append("<form>");\r
+ buf.append("<p>");\r
+ buf.append("Here is some plain text for the text to render; ");\r
+ buf.append("this text is at <a href=\"http://www.eclipse.org\" "\r
+ + "nowrap=\"true\">http://www.eclipse.org</a> web site.");\r
+ buf.append("</p>");\r
+ buf.append("<p>");\r
+ buf.append("<span color=\"header\" font=\"header\">"\r
+ + "This text is in header font and color.</span>");\r
+ buf.append("</p>");\r
+ buf.append("<p>This line will contain some <b>bold</b> and "\r
+ + "some <span font=\"code\">source</span> text. ");\r
+ buf.append("We can also add <img href=\"image\"/> an image. ");\r
+ buf.append("</p>");\r
+ buf.append("<li>A default (bulleted) list item.</li>");\r
+ buf.append("<li>Another bullet list item.</li>");\r
+ buf\r
+ .append("<li style=\"text\" value=\"1.\">A list item with text.</li>");\r
+ buf.append("<li style=\"text\" value=\"2.\">Another list "\r
+ + "item with text</li>");\r
+ buf.append("<li style=\"image\" value=\"image\">List item with "\r
+ + "an image bullet</li>");\r
+ buf\r
+ .append("<li style=\"text\" bindent=\"20\" indent=\"40\" value=\"3.\">"\r
+ + "A list item with text.</li>");\r
+ buf\r
+ .append("<li style=\"text\" bindent=\"20\" indent=\"40\" value=\"4.\">"\r
+ + "A list item with text.</li>");\r
+ buf.append("<p> leading blanks; more white \n\n new "\r
+ + "lines <br/> \n more <b> bb </b> white . </p>");\r
+ buf.append("</form>");\r
+ FormText formText = toolkit.createFormText(form.getBody(), true);\r
+ formText.setWhitespaceNormalized(true);\r
+ td = new TableWrapData(TableWrapData.FILL);\r
+ td.colspan = 2;\r
+ formText.setLayoutData(td);\r
+ \r
+ formText.setColor("header", toolkit.getColors().getColor(\r
+ FormColors.TITLE));\r
+ formText.setFont("header", JFaceResources.getHeaderFont());\r
+ formText.setFont("code", JFaceResources.getTextFont());\r
+ formText.setText(buf.toString(), true, false);\r
+ formText.addHyperlinkListener(new HyperlinkAdapter() {\r
+ public void linkActivated(HyperlinkEvent e) {\r
+ System.out.println("Link active: " + e.getHref());\r
+ }\r
+ });\r
+ */\r
+ \r
+ /* colspan, rowspan demo */\r
+ /*\r
+ * TableWrapLayout layout = new TableWrapLayout(); toolkit = new\r
+ * FormToolkit(parent.getDisplay()); form = toolkit.createForm(parent); //\r
+ * alternate: createScrolledForm form.getBody().setLayout(layout);\r
+ * \r
+ * layout.numColumns = 3; Label label; TableWrapData td;\r
+ * \r
+ * label = toolkit.createLabel(form.getBody(), "Some text to put in the\r
+ * first column", SWT.WRAP); label = toolkit.createLabel(form.getBody(),\r
+ * "Some text to put in the second column and make it a bit "+ "longer\r
+ * so that we can see what happens with column "+ "distribution. This\r
+ * text must be the longest so that it can "+ "get more space allocated\r
+ * to the columns it belongs to.", SWT.WRAP); td = new TableWrapData();\r
+ * td.colspan = 2; label.setLayoutData(td); label =\r
+ * toolkit.createLabel(form.getBody(), "This text will span two rows and\r
+ * should not grow the column.", SWT.WRAP); td = new TableWrapData();\r
+ * td.rowspan = 2; label.setLayoutData(td); label =\r
+ * toolkit.createLabel(form.getBody(), "This text goes into column 2 and\r
+ * consumes only one cell", SWT.WRAP); label.setLayoutData(new\r
+ * TableWrapData(TableWrapData.FILL_GRAB)); label =\r
+ * toolkit.createLabel(form.getBody(), "This text goes into column 3 and\r
+ * consumes only one cell too", SWT.WRAP); label.setLayoutData(new\r
+ * TableWrapData(TableWrapData.FILL)); label =\r
+ * toolkit.createLabel(form.getBody(), "This text goes into column 2 and\r
+ * consumes only one cell", SWT.WRAP); label.setLayoutData(new\r
+ * TableWrapData(TableWrapData.FILL_GRAB)); label =\r
+ * toolkit.createLabel(form.getBody(), "This text goes into column 3 and\r
+ * consumes only one cell too", SWT.WRAP); label.setLayoutData(new\r
+ * TableWrapData(TableWrapData.FILL));\r
+ * form.getBody().setBackground(form.getBody().getDisplay().\r
+ * getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));\r
+ */ \r
+ }\r
+\r
+ /**\r
+ * Passing the focus request to the form.\r
+ */\r
+ public void setFocus() {\r
+ form.setFocus();\r
+ }\r
+\r
+ /**\r
+ * Disposes the toolkit\r
+ */\r
+ public void dispose() {\r
+ toolkit.dispose();\r
+ super.dispose();\r
+ }\r
+}\r