]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - demo/plugins/org.argeo.demo.i18n/src/main/java/org/argeo/demo/i18n/editors/SimpleMultitabEditor.java
First draft for a internationalization demo application
[lgpl/argeo-commons.git] / demo / plugins / org.argeo.demo.i18n / src / main / java / org / argeo / demo / i18n / editors / SimpleMultitabEditor.java
diff --git a/demo/plugins/org.argeo.demo.i18n/src/main/java/org/argeo/demo/i18n/editors/SimpleMultitabEditor.java b/demo/plugins/org.argeo.demo.i18n/src/main/java/org/argeo/demo/i18n/editors/SimpleMultitabEditor.java
new file mode 100644 (file)
index 0000000..41c3ea9
--- /dev/null
@@ -0,0 +1,74 @@
+package org.argeo.demo.i18n.editors;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.argeo.ArgeoException;
+import org.argeo.demo.i18n.I18nDemoPlugin;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.forms.editor.FormEditor;
+
+/**
+ * 
+ * Container for the node editor page. At creation time, it takes a JCR Node
+ * that cannot be changed afterwards.
+ * 
+ */
+public class SimpleMultitabEditor extends FormEditor {
+
+       private final static Log log = LogFactory
+                       .getLog(SimpleMultitabEditor.class);
+       public final static String ID = I18nDemoPlugin.ID + ".simpleMultitabEditor";
+
+       private SimplePage simplePage;
+       private MultiSectionPage multiSectionPage;
+
+       public void init(IEditorSite site, IEditorInput input)
+                       throws PartInitException {
+               super.init(site, input);
+               this.setPartName("Internationalize editor part name");
+       }
+
+       @Override
+       protected void addPages() {
+               try {
+                       simplePage = new SimplePage(this,
+                                       I18nDemoPlugin
+                                                       .getMessage("SimpleMultitabEditor.SimplePageTitle"));
+                       addPage(simplePage);
+
+                       multiSectionPage = new MultiSectionPage(
+                                       this,
+                                       I18nDemoPlugin
+                                                       .getMessage("SimpleMultitabEditor.MultiSectionPageTitle"));
+                       addPage(multiSectionPage);
+
+               } catch (PartInitException e) {
+                       throw new ArgeoException("Not able to add an empty page ", e);
+               }
+       }
+
+       @Override
+       public void doSaveAs() {
+               // unused compulsory method
+       }
+
+       @Override
+       public void doSave(IProgressMonitor monitor) {
+               try {
+                       // Automatically commit all pages of the editor
+                       commitPages(true);
+                       firePropertyChange(PROP_DIRTY);
+               } catch (Exception e) {
+                       throw new ArgeoException("Error while saving node", e);
+               }
+
+       }
+
+       @Override
+       public boolean isSaveAsAllowed() {
+               return true;
+       }
+}