Introduce Argeo Work based on plain RWT.
[gpl/argeo-suite.git] / org.argeo.suite.ui / src / org / argeo / suite / ui / ArgeoSuiteUi.java
diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteUi.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteUi.java
new file mode 100644 (file)
index 0000000..2505c45
--- /dev/null
@@ -0,0 +1,99 @@
+package org.argeo.suite.ui;
+
+import org.argeo.cms.ui.util.CmsUiUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+public class ArgeoSuiteUi {
+       private Composite parent;
+
+       private Composite header;
+       private Composite leadPane;
+
+       private SashForm dynamicArea;
+       private Composite entryArea;
+       private CTabFolder editorArea;
+
+       private Composite defaultBody;
+
+       public ArgeoSuiteUi(Composite parent, int style) {
+               this.parent = parent;
+               parent.setLayout(CmsUiUtils.noSpaceGridLayout());
+
+               header = new Composite(parent, SWT.NONE);
+               CmsUiUtils.style(header, WorkStyles.header);
+               header.setLayoutData(CmsUiUtils.fillWidth());
+
+               Composite belowHeader = new Composite(parent, SWT.NONE);
+               belowHeader.setLayoutData(CmsUiUtils.fillAll());
+               belowHeader.setLayout(CmsUiUtils.noSpaceGridLayout(2));
+
+               if (SWT.RIGHT_TO_LEFT == (style & SWT.RIGHT_TO_LEFT)) {// arabic, hebrew, etc.
+                       dynamicArea = new SashForm(belowHeader, SWT.HORIZONTAL);
+                       leadPane = new Composite(belowHeader, SWT.NONE);
+               } else {
+                       leadPane = new Composite(belowHeader, SWT.NONE);
+                       dynamicArea = new SashForm(belowHeader, SWT.HORIZONTAL);
+               }
+               leadPane.setLayoutData(CmsUiUtils.fillHeight());
+               CmsUiUtils.style(leadPane, WorkStyles.leadPane);
+               dynamicArea.setLayoutData(CmsUiUtils.fillAll());
+
+               if (SWT.RIGHT_TO_LEFT == (style & SWT.RIGHT_TO_LEFT)) {// arabic, hebrew, etc.
+                       editorArea = new CTabFolder(dynamicArea, SWT.NONE);
+                       entryArea = new Composite(dynamicArea, SWT.NONE);
+               } else {
+                       entryArea = new Composite(dynamicArea, SWT.NONE);
+                       editorArea = new CTabFolder(dynamicArea, SWT.NONE);
+               }
+               int[] weights = new int[] { 2000, 8000 };
+               dynamicArea.setWeights(weights);
+
+               Composite buttons = new Composite(editorArea, SWT.NONE);
+               buttons.setLayout(new RowLayout(SWT.HORIZONTAL));
+               Button delete = new Button(buttons, SWT.PUSH);
+               delete.setText("Delete");
+               editorArea.setTopRight(buttons);
+
+               CTabItem defaultTab = new CTabItem(editorArea, SWT.NONE);
+               defaultTab.setText("Home");
+               defaultBody = new Composite(editorArea, SWT.NONE);
+               defaultTab.setControl(defaultBody);
+
+               // editorArea.setSingle(true);
+       }
+
+       Composite getParent() {
+               return parent;
+       }
+
+       Composite getHeader() {
+               return header;
+       }
+
+       Composite getLeadPane() {
+               return leadPane;
+       }
+
+       SashForm getDynamicArea() {
+               return dynamicArea;
+       }
+
+       Composite getEntryArea() {
+               return entryArea;
+       }
+
+       CTabFolder getEditorArea() {
+               return editorArea;
+       }
+
+       Composite getDefaultBody() {
+               return defaultBody;
+       }
+
+}