Introduce fixed entry area.
[gpl/argeo-suite.git] / core / org.argeo.suite.ui / src / org / argeo / suite / ui / widgets / TabbedArea.java
index cd0e3cdd9ce37c45ad28d88e4711152b981f90e5..c281904e989d8d4b8b67b47f4c6ce4cb99b0a468 100644 (file)
@@ -45,7 +45,7 @@ public class TabbedArea extends Composite {
        private boolean singleTab = false;
 
        public TabbedArea(Composite parent, int style) {
-               super(parent, style);
+               super(parent, SWT.NONE);
                CmsUiUtils.style(parent, bodyStyle);
 
                setLayout(CmsUiUtils.noSpaceGridLayout());
@@ -91,7 +91,9 @@ public class TabbedArea extends Composite {
                        title.setLayoutData(CmsUiUtils.fillWidth());
                        title.addSelectionListener((Selected) (e) -> showTab(tabIndex(section.getNode())));
                        Node node = section.getNode();
-                       title.setText(Jcr.getTitle(node));
+                       String titleStr = Jcr.getTitle(node);
+                       // TODO internationalize
+                       title.setText(titleStr);
                        if (!singleTab) {
                                ToolBar toolBar = new ToolBar(sectionHeader, SWT.NONE);
                                ToolItem closeItem = new ToolItem(toolBar, SWT.FLAT);
@@ -198,6 +200,16 @@ public class TabbedArea extends Composite {
                refreshTabHeaders();
                showTab(nextIndex);
        }
+       
+       public void closeAllTabs() {
+               for(Section section:sections) {
+                       section.dispose();                      
+               }
+               sections.clear();
+               emptyState();
+               refreshTabHeaders();
+               layout(true, true);
+       }
 
        protected void emptyState() {
                new Section(body, SWT.NONE, null);
@@ -209,7 +221,16 @@ public class TabbedArea extends Composite {
        }
 
        protected Section getCurrentSection() {
-               return (Section) body.getChildren()[0];
+               return (Section) stackLayout.topControl;
+       }
+
+       public Node getCurrentContext() {
+               Section section = getCurrentSection();
+               if (section != null) {
+                       return section.getNode();
+               } else {
+                       return null;
+               }
        }
 
        public void setTabStyle(String tabStyle) {