You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2016/01/25 16:08:04 UTC

[43/50] [abbrv] isis git commit: ISIS-993: renaming of the view metadata classes.

http://git-wip-us.apache.org/repos/asf/isis/blob/e647a951/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroup/TabGroupPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroup/TabGroupPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroup/TabGroupPanel.java
new file mode 100644
index 0000000..649f6f6
--- /dev/null
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroup/TabGroupPanel.java
@@ -0,0 +1,103 @@
+package org.apache.isis.viewer.wicket.ui.components.entity.tabgroup;
+
+import java.util.List;
+
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.Lists;
+
+import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
+import org.apache.wicket.extensions.markup.html.tabs.ITab;
+import org.apache.wicket.extensions.markup.html.tabs.TabbedPanel;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.Model;
+
+import org.apache.isis.applib.layout.v1_0.TabMetadata;
+import org.apache.isis.applib.layout.v1_0.TabGroupMetadata;
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
+import org.apache.isis.core.runtime.system.context.IsisContext;
+import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
+import org.apache.isis.viewer.wicket.model.models.EntityModel;
+import org.apache.isis.viewer.wicket.ui.components.entity.tabpanel.TabPanel;
+
+import de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel;
+
+public class TabGroupPanel extends AjaxBootstrapTabbedPanel {
+
+    private final EntityModel entityModel;
+    // the view metadata
+    private final TabGroupMetadata tabGroup;
+
+    private static final String ID_TAB_GROUP = "tabGroup";
+
+    private static List<ITab> tabsFor(final EntityModel entityModel) {
+        final List<ITab> tabs = Lists.newArrayList();
+
+        final TabGroupMetadata tabGroup = entityModel.getTabGroupMetadata();
+        final List<TabMetadata> tabMetadataList = FluentIterable
+                .from(tabGroup.getTabs())
+                .filter(TabMetadata.Predicates.notEmpty())
+                .toList();
+
+        for (final TabMetadata tabMetadata : tabMetadataList) {
+            tabs.add(new AbstractTab(Model.of(tabMetadata.getName())) {
+                private static final long serialVersionUID1 = 1L;
+
+                @Override
+                public Panel getPanel(String panelId) {
+                    return new TabPanel(panelId, entityModel, tabMetadata);
+                }
+            });
+        }
+        return tabs;
+    }
+
+    public TabGroupPanel(final EntityModel entityModel) {
+        super(ID_TAB_GROUP, tabsFor(entityModel));
+
+        this.entityModel = entityModel;
+        this.tabGroup = entityModel.getTabGroupMetadata();
+
+        setSelectedTabFromSessionIfAny(this.tabGroup, this, entityModel);
+    }
+
+    @Override
+    public TabbedPanel setSelectedTab(final int index) {
+        saveSelectedTabInSession(tabGroup, index, entityModel);
+        return super.setSelectedTab(index);
+    }
+
+    private void setSelectedTabFromSessionIfAny(
+            final TabGroupMetadata tabGroup,
+            final AjaxBootstrapTabbedPanel ajaxBootstrapTabbedPanel,
+            final EntityModel entityModel) {
+        final String key = buildKey(tabGroup, entityModel);
+        final String value = (String) getSession().getAttribute(key);
+        if (value != null) {
+            final int tabIndex = Integer.parseInt(value);
+            final int numTabs = ajaxBootstrapTabbedPanel.getTabs().size();
+            if (tabIndex < numTabs) {
+                // to support dynamic reloading; the data in the session might not be compatible with current layout.
+                ajaxBootstrapTabbedPanel.setSelectedTab(tabIndex);
+            }
+        }
+    }
+
+    private void saveSelectedTabInSession(
+            final TabGroupMetadata tabGroup,
+            final int tabIndex,
+            final EntityModel entityModel) {
+        final String key = buildKey(tabGroup, entityModel);
+        getSession().setAttribute(key, "" + tabIndex);
+    }
+
+    private String buildKey(final TabGroupMetadata tabGroup, final EntityModel entityModel) {
+        final ObjectAdapterMemento objectAdapterMemento = entityModel.getObjectAdapterMemento();
+        final RootOid oid = (RootOid) objectAdapterMemento.getObjectAdapter(
+                AdapterManager.ConcurrencyChecking.NO_CHECK).getOid();
+        final String key =
+                IsisContext.getOidMarshaller().marshalNoVersion(oid) + ":" + tabGroup.getPath() + "#selectedTab";
+        return key;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/e647a951/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgrouplist/TabGroupListPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgrouplist/TabGroupListPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgrouplist/TabGroupListPanel.java
index bb6d59b..3ef1a82 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgrouplist/TabGroupListPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgrouplist/TabGroupListPanel.java
@@ -21,144 +21,47 @@ package org.apache.isis.viewer.wicket.ui.components.entity.tabgrouplist;
 
 import java.util.List;
 
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Lists;
-
-import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
-import org.apache.wicket.extensions.markup.html.tabs.ITab;
-import org.apache.wicket.extensions.markup.html.tabs.TabbedPanel;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.Model;
-
-import org.apache.isis.applib.layout.v1_0.Tab;
-import org.apache.isis.applib.layout.v1_0.TabGroup;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
+
+import org.apache.isis.applib.layout.v1_0.TabGroupMetadata;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.ui.components.entity.tabpanel.TabPanel;
+import org.apache.isis.viewer.wicket.ui.components.entity.tabgroup.TabGroupPanel;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 
-import de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel;
-
 public class TabGroupListPanel extends PanelAbstract<EntityModel> {
 
     private static final long serialVersionUID = 1L;
 
     private static final String ID_TAB_GROUPS = "tabGroups";
-    private static final String ID_TAB_GROUP = "tabGroup";
+
+    // the view metadata
+    private final List<TabGroupMetadata> tabGroups;
 
     public TabGroupListPanel(final String id, final EntityModel entityModel) {
         super(id, entityModel);
+
+        this.tabGroups = entityModel.getTabGroupListMetadata();
+
         buildGui();
     }
 
     private void buildGui() {
         final EntityModel model = getModel();
 
-        final List<TabGroup> tabGroups = model.getTabGroupListMetadata();
-
-        final ListView<TabGroup> tabGroupsList = new ListView<TabGroup>(ID_TAB_GROUPS, tabGroups) {
+        final ListView<TabGroupMetadata> tabGroupsList = new ListView<TabGroupMetadata>(ID_TAB_GROUPS, this.tabGroups) {
 
             @Override
-            protected void populateItem(final ListItem<TabGroup> item) {
-
-                final TabGroup tabGroup = item.getModelObject();
+            protected void populateItem(final ListItem<TabGroupMetadata> item) {
 
+                final TabGroupMetadata tabGroup = item.getModelObject();
                 final EntityModel entityModelWithHints = model.cloneWithTabGroupMetadata(tabGroup);
-
-                final AjaxBootstrapTabbedPanel ajaxBootstrapTabbedPanel = newTabbedPanel(entityModelWithHints);
-
-                item.add(ajaxBootstrapTabbedPanel);
+                final TabGroupPanel tabGroupPanel = new TabGroupPanel(entityModelWithHints);
+                item.add(tabGroupPanel);
             }
-
-                private AjaxBootstrapTabbedPanel newTabbedPanel(
-                        final EntityModel entityModel) {
-
-                    final TabGroup tabGroup = entityModel.getTabGroupMetadata();
-                    final List<ITab> tabs = Lists.newArrayList();
-                    final List<Tab> tabList = FluentIterable
-                            .from(tabGroup.getTabs())
-                            .filter(Tab.Predicates.notEmpty())
-                            .toList();
-
-                    for (final Tab tab : tabList) {
-                        tabs.add(new AbstractTab(Model.of(tab.getName())) {
-                            private static final long serialVersionUID = 1L;
-
-                            @Override
-                            public Panel getPanel(String panelId) {
-                                return new TabPanel(panelId, model, tab);
-                            }
-                        });
-                    }
-                    final AjaxBootstrapTabbedPanel tabbedPanel = new MyAjaxBootstrapTabbedPanel(tabs, tabGroup,
-                            entityModel);
-                    return tabbedPanel;
-                }
-
-
         };
 
         add(tabGroupsList);
     }
 
-    private static class MyAjaxBootstrapTabbedPanel extends AjaxBootstrapTabbedPanel {
-        private final TabGroup tabGroup;
-        private final EntityModel entityModel;
-
-        public MyAjaxBootstrapTabbedPanel(
-                final List<ITab> tabs,
-                final TabGroup tabGroup,
-                final EntityModel entityModel) {
-            super(TabGroupListPanel.ID_TAB_GROUP, tabs);
-            this.tabGroup = tabGroup;
-            this.entityModel = entityModel;
-
-            setSelectedTabFromSessionIfAny(tabGroup, this, entityModel);
-        }
-
-        @Override
-        public TabbedPanel setSelectedTab(final int index) {
-            saveSelectedTabInSession(tabGroup, index, entityModel);
-            return super.setSelectedTab(index);
-        }
-
-        private void setSelectedTabFromSessionIfAny(
-                final TabGroup tabGroup,
-                final AjaxBootstrapTabbedPanel ajaxBootstrapTabbedPanel,
-                final EntityModel entityModel) {
-            final String key = buildKey(tabGroup, entityModel);
-            final String value = (String) getSession().getAttribute(key);
-            if(value != null) {
-                final int tabIndex = Integer.parseInt(value);
-                final int numTabs = ajaxBootstrapTabbedPanel.getTabs().size();
-                if(tabIndex < numTabs) {
-                    // to support dynamic reloading; the data in the session might not be compatible with current layout.
-                    ajaxBootstrapTabbedPanel.setSelectedTab(tabIndex);
-                }
-            }
-        }
-
-        private void saveSelectedTabInSession(
-                final TabGroup tabGroup,
-                final int tabIndex,
-                final EntityModel entityModel) {
-            final String key = buildKey(tabGroup, entityModel);
-            getSession().setAttribute(key, "" + tabIndex);
-        }
-
-        private String buildKey(final TabGroup tabGroup, final EntityModel entityModel) {
-            final ObjectAdapterMemento objectAdapterMemento = entityModel.getObjectAdapterMemento();
-            final RootOid oid = (RootOid) objectAdapterMemento.getObjectAdapter(
-                    AdapterManager.ConcurrencyChecking.NO_CHECK).getOid();
-            final String key =
-                    IsisContext.getOidMarshaller().marshalNoVersion(oid) + ":" + tabGroup.getPath() + "#selectedTab";
-            return key;
-        }
-
-    }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/e647a951/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabpanel/TabPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabpanel/TabPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabpanel/TabPanel.java
index b6a5f70..76c8066 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabpanel/TabPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabpanel/TabPanel.java
@@ -1,6 +1,6 @@
 package org.apache.isis.viewer.wicket.ui.components.entity.tabpanel;
 
-import org.apache.isis.applib.layout.v1_0.Tab;
+import org.apache.isis.applib.layout.v1_0.TabMetadata;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
@@ -10,10 +10,10 @@ public class TabPanel extends PanelAbstract {
 
     private static final String ID_COLUMN = "column";
 
-    public TabPanel(String id, final EntityModel model, final Tab tab) {
+    public TabPanel(String id, final EntityModel model, final TabMetadata tabMetadata) {
         super(id);
 
-        final EntityModel modelWithTabHints = model.cloneWithTabMetadata(tab);
+        final EntityModel modelWithTabHints = model.cloneWithTabMetadata(tabMetadata);
 
         getComponentFactoryRegistry()
                 .addOrReplaceComponent(this,