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 2013/09/10 08:55:38 UTC
git commit: ISIS-527: autofocus on first field
Updated Branches:
refs/heads/master ad6b896fa -> f52e9d941
ISIS-527: autofocus on first field
Also:
* removed ObjectAssociations (filters... moved to ObjectAssociation.Filters)
* removed EvenOrOddCssAttributeFactory, is no-op functionality
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/f52e9d94
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/f52e9d94
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/f52e9d94
Branch: refs/heads/master
Commit: f52e9d9417c927dc12ea3c2619f2a8e801e5d1e1
Parents: ad6b896
Author: Dan Haywood <da...@apache.org>
Authored: Tue Sep 10 07:17:22 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Tue Sep 10 07:17:22 2013 +0100
----------------------------------------------------------------------
.../actions/ActionParametersFormPanel.java | 8 +++
.../collections/EntityCollectionsPanel.java | 3 -
.../entity/header/EntityHeaderPanel.java | 3 -
.../entity/properties/EntityPropertiesForm.java | 36 +++++++++---
.../viewer/wicket/ui/pages/PageAbstract.css | 8 ---
.../ui/pages/jquery.isis.wicket.viewer.js | 2 +
.../util/EvenOrOddCssClassAppenderFactory.java | 46 ---------------
.../json/LayoutMetadataReaderFromJson.java | 3 +-
.../spec/feature/ObjectAssociations.java | 61 --------------------
9 files changed, 40 insertions(+), 130 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/f52e9d94/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
index 6e23883..e04e4cf 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
@@ -55,6 +55,7 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel.ScalarModelProvider;
import org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.FormFeedbackPanel;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
+import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
/**
* {@link PanelAbstract Panel} to capture the arguments for an action
@@ -90,6 +91,8 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
private final List<ScalarPanelAbstract> paramPanels = Lists.newArrayList();
+ private boolean renderedFirstField;
+
public ActionParameterForm(final String id, final ActionModel actionModel) {
super(id, actionModel);
@@ -135,6 +138,11 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
paramPanel.setOutputMarkupId(true);
paramPanel.notifyOnChange(this);
}
+
+ if(!renderedFirstField) {
+ component.add(new CssClassAppender("first-field"));
+ renderedFirstField = true;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/f52e9d94/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
index d255445..cef4cb3 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
@@ -39,7 +39,6 @@ import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.ui.components.collection.CollectionPanel;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
-import org.apache.isis.viewer.wicket.ui.util.EvenOrOddCssClassAppenderFactory;
/**
* {@link PanelAbstract Panel} representing the properties of an entity, as per
@@ -83,14 +82,12 @@ public class EntityCollectionsPanel extends PanelAbstract<EntityModel> {
final List<ObjectAssociation> associations = visibleCollections(adapter, noSpec);
final RepeatingView collectionRv = new RepeatingView(ID_COLLECTIONS);
- final EvenOrOddCssClassAppenderFactory eo = new EvenOrOddCssClassAppenderFactory();
add(collectionRv);
for (final ObjectAssociation association : associations) {
final WebMarkupContainer collectionRvContainer = new WebMarkupContainer(collectionRv.newChildId());
collectionRv.add(collectionRvContainer);
- collectionRvContainer.add(eo.nextClass());
addCollectionToForm(entityModel, association, collectionRvContainer);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/f52e9d94/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 fc266c5..11fc06d 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
@@ -21,7 +21,6 @@ package org.apache.isis.viewer.wicket.ui.components.entity.header;
import java.util.List;
-import com.google.common.base.Function;
import com.google.common.base.Functions;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
@@ -33,7 +32,6 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.filter.Filter;
import org.apache.isis.applib.filter.Filters;
import org.apache.isis.core.commons.lang.StringFunctions;
-import org.apache.isis.core.commons.lang.StringExtensions;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
import org.apache.isis.core.metamodel.spec.ActionType;
@@ -41,7 +39,6 @@ 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.metamodel.spec.feature.ObjectAssociations;
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;
http://git-wip-us.apache.org/repos/asf/isis/blob/f52e9d94/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
index 181b11f..b29a9b7 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
@@ -25,6 +25,8 @@ import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.Session;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.ajax.attributes.IAjaxCallListener;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
@@ -55,7 +57,6 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecifications;
import org.apache.isis.core.metamodel.spec.ObjectSpecifications.MemberGroupLayoutHint;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociations;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.core.runtime.memento.Memento;
import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -71,7 +72,6 @@ import org.apache.isis.viewer.wicket.ui.panels.ButtonWithPreValidateHook;
import org.apache.isis.viewer.wicket.ui.panels.FormAbstract;
import org.apache.isis.viewer.wicket.ui.util.Components;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
-import org.apache.isis.viewer.wicket.ui.util.EvenOrOddCssClassAppenderFactory;
class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
@@ -99,6 +99,8 @@ class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
private Button okButton;
private Button cancelButton;
private FeedbackPanel feedback;
+
+ private boolean renderedFirstField;
public EntityPropertiesForm(final String id, final EntityModel entityModel, final Component owningPanel) {
super(id, entityModel);
@@ -119,6 +121,8 @@ class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
final EntityModel entityModel = (EntityModel) getModel();
final ColumnSpans columnSpans = entityModel.getObject().getSpecification().getFacet(MemberGroupLayoutFacet.class).getColumnSpans();
+ renderedFirstField = false;
+
// left column
MarkupContainer leftColumn = new WebMarkupContainer(ID_LEFT_COLUMN);
add(leftColumn);
@@ -187,7 +191,7 @@ class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
final RepeatingView memberGroupRv = new RepeatingView(ID_MEMBER_GROUP);
markupContainer.add(memberGroupRv);
- Map<String, List<ObjectAssociation>> associationsByGroup = ObjectAssociations.groupByMemberOrderName(associations);
+ Map<String, List<ObjectAssociation>> associationsByGroup = ObjectAssociation.Util.groupByMemberOrderName(associations);
final List<String> groupNames = ObjectSpecifications.orderByMemberGroups(objSpec, associationsByGroup.keySet(), hint);
@@ -202,7 +206,6 @@ class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
memberGroupRvContainer.add(new Label(ID_MEMBER_GROUP_NAME, groupName));
final RepeatingView propertyRv = new RepeatingView(ID_PROPERTIES);
- final EvenOrOddCssClassAppenderFactory eo = new EvenOrOddCssClassAppenderFactory();
memberGroupRvContainer.add(propertyRv);
@SuppressWarnings("unused")
@@ -210,7 +213,6 @@ class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
for (final ObjectAssociation association : associationsInGroup) {
final WebMarkupContainer propertyRvContainer = new WebMarkupContainer(propertyRv.newChildId());
propertyRv.add(propertyRvContainer);
- propertyRvContainer.add(eo.nextClass());
addPropertyToForm(entityModel, association, propertyRvContainer);
}
}
@@ -226,7 +228,12 @@ class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
final PropertyMemento pm = new PropertyMemento(otoa);
final ScalarModel scalarModel = entityModel.getPropertyModel(pm);
- getComponentFactoryRegistry().addOrReplaceComponent(container, ID_PROPERTY, ComponentType.SCALAR_NAME_AND_VALUE, scalarModel);
+ final Component component = getComponentFactoryRegistry().addOrReplaceComponent(container, ID_PROPERTY, ComponentType.SCALAR_NAME_AND_VALUE, scalarModel);
+
+ if(!renderedFirstField) {
+ component.add(new CssClassAppender("first-field"));
+ renderedFirstField = true;
+ }
}
private List<ObjectAssociation> visibleProperties(final ObjectAdapter adapter, final ObjectSpecification objSpec, Where where) {
@@ -267,8 +274,23 @@ class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
protected void onError(final AjaxRequestTarget target, final Form<?> form) {
toEditMode(target);
}
-
+
+ @Override
+ protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
+ super.updateAjaxAttributes(attributes);
+ attributes.getAjaxCallListeners().add(new org.apache.wicket.ajax.attributes.AjaxCallListener(){
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public CharSequence getSuccessHandler(Component component) {
+ return "$('.first-field input').focus();";
+ }
+ });
+ }
};
+
+
markupContainer.add(editButton);
http://git-wip-us.apache.org/repos/asf/isis/blob/f52e9d94/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
index 61c637b..c581f0c 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
@@ -532,10 +532,6 @@ table.contents th {
-.even, .odd {
- background-color: #ffffff;
-}
-
.property, .propertyOrCollection, .parameter {
clear: both;
@@ -594,10 +590,6 @@ table.contents th {
.scalarValue {
}
-div.odd, div.even {
- display: block;
-}
-
div.scalarPanel {
display: inline;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/f52e9d94/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
index ce6e0e6..4367501 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
@@ -24,4 +24,6 @@ $(document).ready(function() {
$('.buttons .okButton:not(.noVeil)').click(showVeil);
$('.buttons .ok:not(.noVeil)').click(showVeil);
$('.cssSubMenuItemsPanel .cssSubMenuItem a:not(.noVeil)').click(showVeil);
+
+ $('.first-field input').focus();
});
http://git-wip-us.apache.org/repos/asf/isis/blob/f52e9d94/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/EvenOrOddCssClassAppenderFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/EvenOrOddCssClassAppenderFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/EvenOrOddCssClassAppenderFactory.java
deleted file mode 100644
index b11a4eb..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/EvenOrOddCssClassAppenderFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.viewer.wicket.ui.util;
-
-import org.apache.wicket.behavior.Behavior;
-
-
-public class EvenOrOddCssClassAppenderFactory {
-
- private enum EvenOrOdd {
- EVEN, ODD;
- private EvenOrOddCssClassAppenderFactory.EvenOrOdd next() {
- return this == EVEN ? ODD : EVEN;
- }
-
- private String className() {
- return this.name().toLowerCase();
- }
- }
-
- private EvenOrOddCssClassAppenderFactory.EvenOrOdd eo = EvenOrOdd.EVEN;
-
- //public IBehavior nextClass() {
- public Behavior nextClass() {
- final String className = eo.className();
- eo = eo.next();
- return new CssClassAppender(className);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/f52e9d94/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
index 1295926..b7ec5e3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
@@ -54,7 +54,6 @@ 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.ObjectActions;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociations;
public class LayoutMetadataReaderFromJson implements LayoutMetadataReader {
@@ -224,7 +223,7 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader {
private static void updateColumnMemberGroups(ObjectSpecification objectSpec, final MemberGroupLayoutHint hint, ColumnRepr columnRepr, Set<String> actionIdsForAssociations) {
final List<ObjectAssociation> objectAssociations = propertiesOf(objectSpec);
- final Map<String, List<ObjectAssociation>> associationsByGroup = ObjectAssociations.groupByMemberOrderName(objectAssociations);
+ final Map<String, List<ObjectAssociation>> associationsByGroup = ObjectAssociation.Util.groupByMemberOrderName(objectAssociations);
final List<String> groupNames = ObjectSpecifications.orderByMemberGroups(objectSpec, associationsByGroup.keySet(), hint);
http://git-wip-us.apache.org/repos/asf/isis/blob/f52e9d94/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociations.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociations.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociations.java
deleted file mode 100644
index fae9fb5..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociations.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.spec.feature;
-
-import java.util.List;
-import java.util.Map;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-
-public final class ObjectAssociations {
-
- private ObjectAssociations() {
- }
-
- @Deprecated
- public static Map<String, List<ObjectAssociation>> groupByMemberOrderName(List<ObjectAssociation> associations) {
- return ObjectAssociation.Util.groupByMemberOrderName(associations);
- }
-
- @Deprecated
- public static Function<ObjectAssociation, String> toName() {
- return ObjectAssociation.Functions.toName();
- }
-
- @Deprecated
- public static Function<ObjectAssociation, String> toId() {
- return ObjectAssociation.Functions.toId();
- }
-
- @Deprecated
- public static Predicate<ObjectAssociation> being(final Contributed contributed) {
- return ObjectAssociation.Predicates.being(contributed);
- }
-
- @Deprecated
- public static Function<String, OneToOneAssociation> fromId(final ObjectSpecification objSpec) {
- return OneToOneAssociation.Functions.fromId(objSpec);
- }
-
-
-}