Author: scabanovich
Date: 2008-05-30 10:45:42 -0400 (Fri, 30 May 2008)
New Revision: 8480
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/commands/SetConstraintCommand.java
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/PagesElement.java
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PageImpl.java
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PagesElementImpl.java
Log:
JBIDE-1189
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/commands/SetConstraintCommand.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/commands/SetConstraintCommand.java 2008-05-30
14:45:30 UTC (rev 8479)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/commands/SetConstraintCommand.java 2008-05-30
14:45:42 UTC (rev 8480)
@@ -27,16 +27,14 @@
oldSize = part.getSize();
oldPos = part.getLocation();
- part.setLocation(newPos);
- part.setSize(newSize);
+ part.changeLocationAndSize(newPos, newSize);
}
public void setShell(Shell shell) {
}
public void redo() {
- part.setSize(newSize);
- part.setLocation(newPos);
+ part.changeLocationAndSize(newPos, newSize);
}
public void setLocation(Rectangle r) {
@@ -57,8 +55,7 @@
}
public void undo() {
- part.setSize(oldSize);
- part.setLocation(oldPos);
+ part.changeLocationAndSize(oldPos, oldSize);
}
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/PagesElement.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/PagesElement.java 2008-05-30
14:45:30 UTC (rev 8479)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/PagesElement.java 2008-05-30
14:45:42 UTC (rev 8480)
@@ -118,4 +118,5 @@
public void childAdded(Object childData);
+ public void changeLocationAndSize(Point location, Dimension size);
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PageImpl.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PageImpl.java 2008-05-30
14:45:30 UTC (rev 8479)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PageImpl.java 2008-05-30
14:45:42 UTC (rev 8480)
@@ -180,44 +180,58 @@
* <!-- end-user-doc -->
* @generated NOT
*/
+ int updatelock = 0;
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
public void dataChanged() {
+ if(updatelock > 0) return;
+ updatelock++;
+ try {
XModelObject item = getModelObject();
- SeamPagesProcessStructureHelper h = SeamPagesProcessStructureHelper.getInstance();
+ SeamPagesProcessStructureHelper h = SeamPagesProcessStructureHelper
+ .getInstance();
- setName(h.getPageTitle(item));
- int[] shape = h.asIntArray(item, "shape");
- if(shape != null && shape.length >= 2) {
- setLocation(new Point(shape[0],shape[1]));
- } else {
- setLocation(new Point(0,0));
- }
- if(shape != null && shape.length >= 4) {
- setSize(new Dimension(shape[2],shape[3]));
- }
+ setName(h.getPageTitle(item));
+ int[] shape = h.asIntArray(item, "shape");
+ if (shape != null && shape.length >= 2) {
+ setLocation(new Point(shape[0], shape[1]));
+ } else {
+ setLocation(new Point(0, 0));
+ }
+ if (shape != null && shape.length >= 4) {
+ setSize(new Dimension(shape[2], shape[3]));
+ }
- String newParams = item.getAttributeValue("params");
- if(newParams == null) newParams = "";
- if(!params.equals(newParams)) {
- params = newParams;
- String[][] ps1 = h.getParams(item);
- List<Param> ps2 = getParams();
- for (int i = 0; i < ps1.length && i < ps2.size(); i++) {
- Param p = ps2.get(i);
- p.setName(ps1[i][0]);
- p.setValue(ps1[i][1]);
- }
- if(ps1.length > ps2.size()) {
- for (int i = ps2.size(); i < ps1.length; i++) {
- Param p = PagesFactory.eINSTANCE.createParam();
+ String newParams = item.getAttributeValue("params");
+ if (newParams == null)
+ newParams = "";
+ if (!params.equals(newParams)) {
+ params = newParams;
+ String[][] ps1 = h.getParams(item);
+ List<Param> ps2 = getParams();
+ for (int i = 0; i < ps1.length && i < ps2.size(); i++) {
+ Param p = ps2.get(i);
p.setName(ps1[i][0]);
p.setValue(ps1[i][1]);
- getChildren().add(p);
}
- } else if(ps1.length < ps2.size()) {
- for (int i = ps1.length; i < ps2.size(); i++) {
- getChildren().remove(ps2.get(i));
+ if (ps1.length > ps2.size()) {
+ for (int i = ps2.size(); i < ps1.length; i++) {
+ Param p = PagesFactory.eINSTANCE.createParam();
+ p.setName(ps1[i][0]);
+ p.setValue(ps1[i][1]);
+ getChildren().add(p);
+ }
+ } else if (ps1.length < ps2.size()) {
+ for (int i = ps1.length; i < ps2.size(); i++) {
+ getChildren().remove(ps2.get(i));
+ }
}
}
+ } finally {
+ updatelock--;
}
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PagesElementImpl.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PagesElementImpl.java 2008-05-30
14:45:30 UTC (rev 8479)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PagesElementImpl.java 2008-05-30
14:45:42 UTC (rev 8480)
@@ -25,9 +25,11 @@
import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
import org.eclipse.emf.ecore.util.InternalEList;
+import org.jboss.tools.common.model.XModelException;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants;
import org.jboss.tools.seam.pages.xml.model.helpers.SeamPagesProcessStructureHelper;
+import org.jboss.tools.seam.ui.pages.SeamUiPagesPlugin;
import org.jboss.tools.seam.ui.pages.editor.ecore.pages.Link;
import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PagesElement;
import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PagesFactory;
@@ -239,6 +241,44 @@
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void changeLocationAndSize(Point location, Dimension size) {
+ setLocation(location);
+ setSize(size);
+ commitShapeToData();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected void commitShapeToData() {
+ Point location = getLocation();
+ Dimension size = getSize();
+ String shape = "";
+ if(location != null) {
+ shape = "" + location.x + "," + location.y;
+ } else {
+ shape = "0,0";
+ }
+ if(size != null) {
+ shape += "," + size.width + "," + size.height;
+ }
+ XModelObject o = getModelObject();
+ if(o != null && o.getModelEntity().getAttribute("shape") != null) {
+ try {
+ o.getModel().changeObjectAttribute(o, "shape", shape);
+ } catch (XModelException e) {
+ SeamUiPagesPlugin.getDefault().logError(e);
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @generated
*/
public Dimension getSize() {
Show replies by date