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 2014/05/08 09:13:53 UTC

[07/10] git commit: ISIS-764: more stuff moved over

ISIS-764: more stuff moved over

from EntityLinkSelect2Panel to ReferencePanel.  Specifically, the entityIconAndTitle link is now parented by ReferencePanel.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/5fef6586
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/5fef6586
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/5fef6586

Branch: refs/heads/ISIS-764
Commit: 5fef65862dac5ceae208220639b53d6b5e05cecc
Parents: 1f714c0
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu May 8 00:23:25 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu May 8 00:23:25 2014 +0100

----------------------------------------------------------------------
 .../entity/header/EntityHeaderPanel.java        |  6 ---
 .../reference/EntityLinkSelect2Panel.html       |  1 -
 .../scalars/reference/ReferencePanel.html       |  1 +
 .../scalars/reference/ReferencePanel.java       | 53 ++++++++++----------
 .../dom/src/main/java/dom/todo/ToDoItem.java    | 45 +++++++++++++++++
 5 files changed, 73 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/5fef6586/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
index 070048b..fb16b44 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
@@ -27,10 +27,7 @@ import com.google.common.collect.Lists;
 import com.google.inject.Inject;
 
 import org.apache.wicket.Component;
-import org.apache.wicket.Page;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
 
-import org.apache.isis.applib.annotation.Bulk;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.filter.Filter;
 import org.apache.isis.applib.filter.Filters;
@@ -42,11 +39,9 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.progmodel.facets.actions.bulk.BulkFacet;
 import org.apache.isis.core.runtime.system.DeploymentType;
 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.ActionModel;
 import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
@@ -57,7 +52,6 @@ import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuBuilde
 import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuPanel;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
-import org.apache.isis.viewer.wicket.ui.pages.actionprompt.ActionPromptPage;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 
 /**

http://git-wip-us.apache.org/repos/asf/isis/blob/5fef6586/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/EntityLinkSelect2Panel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/EntityLinkSelect2Panel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/EntityLinkSelect2Panel.html
index 7610cf1..9f86f3e 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/EntityLinkSelect2Panel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/EntityLinkSelect2Panel.html
@@ -25,7 +25,6 @@
 	<body>
 		<wicket:panel>
             <input wicket:id="autoComplete" type="hidden" class="autoComplete" />
-            <span wicket:id="entityIconAndTitle">[icon and title]</span>
 		</wicket:panel>
 	</body>
 </html>

http://git-wip-us.apache.org/repos/asf/isis/blob/5fef6586/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
index dd9de09..a1ddb42 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
@@ -34,6 +34,7 @@
                                 <div class="wrapper">
                                     <span class="autoCompletePlaceholder">
                                         <span wicket:id="entityLink">link or drop down</span>
+                                        <span wicket:id="entityIconAndTitle">[icon and title]</span>
                                     </span>
                                     <div class="clear"/>
                                 </div>

http://git-wip-us.apache.org/repos/asf/isis/blob/5fef6586/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index 09d8e8a..cba1720 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -28,6 +28,7 @@ import com.vaynberg.wicket.select2.Settings;
 
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.behavior.Behavior;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.FormComponentLabel;
@@ -44,7 +45,6 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.model.models.ScalarModelWithPending;
 import org.apache.isis.viewer.wicket.model.models.ScalarModelWithPending.Util;
 import org.apache.isis.viewer.wicket.ui.ComponentFactory;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
@@ -69,11 +69,14 @@ public class ReferencePanel extends ScalarPanelAbstract {
     private static final String ID_SCALAR_IF_COMPACT = "scalarIfCompact";
 
     static final String ID_AUTO_COMPLETE = "autoComplete";
+    
     static final String ID_ENTITY_ICON_AND_TITLE = "entityIconAndTitle";
 
     private EntityLinkSelect2Panel entityLink;
     private EntityLinkSimplePanel entitySimpleLink;
 
+    private FormComponentLabel labelIfRegular;
+
     public ReferencePanel(final String id, final ScalarModel scalarModel) {
         super(id, scalarModel);
     }
@@ -116,7 +119,7 @@ public class ReferencePanel extends ScalarPanelAbstract {
         entityLink.setOutputMarkupId(true);
         entityLink.setLabel(Model.of(name));
         
-        final FormComponentLabel labelIfRegular = new FormComponentLabel(ID_SCALAR_IF_REGULAR, entityLink);
+        labelIfRegular = new FormComponentLabel(ID_SCALAR_IF_REGULAR, entityLink);
         labelIfRegular.add(entityLink);
         
         final String describedAs = getModel().getDescribedAs();
@@ -344,27 +347,27 @@ public class ReferencePanel extends ScalarPanelAbstract {
     }
 
     void syncLinkWithInput(EntityLinkSelect2Panel linkPanel, final ObjectAdapter adapter) {
+        if(labelIfRegular == null) {
+            return;
+        }
+        
         if (adapter != null) {
-            addOrReplaceIconAndTitle(linkPanel, adapter);
+            final EntityModel entityModelForLink = new EntityModel(adapter);
+            
+            entityModelForLink.setContextAdapterIfAny(getModel().getContextAdapterIfAny());
+            entityModelForLink.setRenderingHint(getModel().getRenderingHint());
+            
+            final ComponentFactory componentFactory = 
+                    getComponentFactoryRegistry().findComponentFactory(ComponentType.ENTITY_ICON_AND_TITLE, entityModelForLink);
+            final Component component = componentFactory.createComponent(entityModelForLink);
+            
+            labelIfRegular.addOrReplace(component);
         } else {
-            Components.permanentlyHide(linkPanel, ReferencePanel.ID_ENTITY_ICON_AND_TITLE);
+            Components.permanentlyHide(labelIfRegular, ReferencePanel.ID_ENTITY_ICON_AND_TITLE);
+            
         }
     }
 
-    void addOrReplaceIconAndTitle(EntityLinkSelect2Panel linkPanel, ObjectAdapter pendingOrCurrentAdapter) {
-
-        final EntityModel entityModelForLink = new EntityModel(pendingOrCurrentAdapter);
-        
-        entityModelForLink.setContextAdapterIfAny(getModel().getContextAdapterIfAny());
-        entityModelForLink.setRenderingHint(getModel().getRenderingHint());
-        
-        final ComponentFactory componentFactory = 
-                getComponentFactoryRegistry().findComponentFactory(ComponentType.ENTITY_ICON_AND_TITLE, entityModelForLink);
-        final Component component = componentFactory.createComponent(entityModelForLink);
-        
-        linkPanel.addOrReplace(component);
-    }
-
 
     void onSelected(EntityLinkSelect2Panel linkPanel, final ObjectAdapterMemento selectedAdapterMemento) {
 
@@ -394,8 +397,8 @@ public class ReferencePanel extends ScalarPanelAbstract {
             select2Field.setEnabled(mutability);
         }
         
-        if(isEditableWithEitherAutoCompleteOrChoices()) {
-            Components.permanentlyHide(linkPanel, ReferencePanel.ID_ENTITY_ICON_AND_TITLE);
+        if(labelIfRegular != null && isEditableWithEitherAutoCompleteOrChoices()) {
+            Components.permanentlyHide(labelIfRegular, ReferencePanel.ID_ENTITY_ICON_AND_TITLE);
         }
     }
 
@@ -457,13 +460,11 @@ public class ReferencePanel extends ScalarPanelAbstract {
             //
             linkPanel.select2Field.clearInput();
         }
-        
-        // no need for link, since can see in drop-down
-        Components.permanentlyHide(linkPanel, ReferencePanel.ID_ENTITY_ICON_AND_TITLE);
     
-        // no need for the 'null' title, since if there is no object yet
-        // can represent this fact in the drop-down
-        // permanentlyHide(ID_ENTITY_TITLE_NULL);
+        if(labelIfRegular != null) {
+            // no need for link, since can see in drop-down
+            Components.permanentlyHide(labelIfRegular, ReferencePanel.ID_ENTITY_ICON_AND_TITLE);
+        }
     }
 
     String getInput() {

http://git-wip-us.apache.org/repos/asf/isis/blob/5fef6586/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
index c384a9c..e2d5e1e 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
@@ -22,13 +22,18 @@ import java.math.BigDecimal;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.*;
+
 import javax.jdo.JDOHelper;
 import javax.jdo.annotations.IdentityType;
+import javax.jdo.annotations.NullValue;
 import javax.jdo.annotations.VersionStrategy;
+
 import com.google.common.base.Objects;
 import com.google.common.base.Predicate;
 import com.google.common.collect.Ordering;
+
 import org.joda.time.LocalDate;
+
 import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.applib.NonRecoverableException;
 import org.apache.isis.applib.RecoverableException;
@@ -901,4 +906,44 @@ public class ToDoItem implements Comparable<ToDoItem> {
 
     //endregion
 
+    
+    // //////////////////////////////////////
+    // foo (property)
+    // //////////////////////////////////////
+
+    private ToDoItem foo;
+
+    @javax.jdo.annotations.Persistent()
+    @javax.jdo.annotations.Column(allowsNull="true")
+    @MemberOrder(sequence = "1")
+    public ToDoItem getFoo() {
+        return foo;
+    }
+
+    public void setFoo(final ToDoItem foo) {
+        this.foo = foo;
+    }
+
+    // //////////////////////////////////////
+    // bar (property)
+    // //////////////////////////////////////
+
+    private ToDoItem bar;
+
+    @javax.jdo.annotations.Persistent()
+    @javax.jdo.annotations.Column(allowsNull="true")
+    @MemberOrder(sequence = "1")
+    public ToDoItem getBar() {
+        return bar;
+    }
+
+    public void setBar(final ToDoItem bar) {
+        this.bar = bar;
+    }
+    
+    public List<ToDoItem> choicesBar() {
+        return toDoItems.allToDos();
+    }
+
+
 }