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,