You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2006/07/12 04:53:16 UTC
svn commit: r421091 [2/2] - in
/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser: ./ META-INF/ dist/
lib/ src/org/apache/cayenne/ropbrowser/
src/org/apache/cayenne/ropbrowser/commands/
src/org/apache/cayenne/ropbrowser/figures/ src/org/apache/cayenn...
Modified: incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/Painting.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/Painting.java?rev=421091&r1=421090&r2=421091&view=diff
==============================================================================
--- incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/Painting.java (original)
+++ incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/Painting.java Tue Jul 11 19:53:14 2006
@@ -1,6 +1,22 @@
+/*
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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.cayenne.ropbrowser.model;
-import org.apache.cayenne.ropbrowser.model.auto._Painting;
+import org.apache.cayenne.ropbrowser.model.auto._Painting;
/**
* A persistent class mapped as "Painting" Cayenne entity.
Modified: incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/auto/_Artist.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/auto/_Artist.java?rev=421091&r1=421090&r2=421091&view=diff
==============================================================================
--- incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/auto/_Artist.java (original)
+++ incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/auto/_Artist.java Tue Jul 11 19:53:14 2006
@@ -4,7 +4,7 @@
import java.util.List;
import org.apache.cayenne.ropbrowser.model.AbstractObject;
-import org.apache.cayenne.ropbrowser.model.Painting;
+import org.apache.cayenne.ropbrowser.model.Painting;
/**
* A generated persistent class mapped as "Artist" Cayenne entity. It is a good idea to
Modified: incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/auto/_Gallery.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/auto/_Gallery.java?rev=421091&r1=421090&r2=421091&view=diff
==============================================================================
--- incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/auto/_Gallery.java (original)
+++ incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/auto/_Gallery.java Tue Jul 11 19:53:14 2006
@@ -3,7 +3,7 @@
import java.util.List;
import org.apache.cayenne.ropbrowser.model.AbstractObject;
-import org.apache.cayenne.ropbrowser.model.Painting;
+import org.apache.cayenne.ropbrowser.model.Painting;
/**
* A generated persistent class mapped as "Gallery" Cayenne entity. It is a good idea to
Modified: incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/auto/_Painting.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/auto/_Painting.java?rev=421091&r1=421090&r2=421091&view=diff
==============================================================================
--- incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/auto/_Painting.java (original)
+++ incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/model/auto/_Painting.java Tue Jul 11 19:53:14 2006
@@ -3,7 +3,7 @@
import org.apache.cayenne.ropbrowser.model.AbstractObject;
import org.apache.cayenne.ropbrowser.model.Artist;
import org.apache.cayenne.ropbrowser.model.Gallery;
-import org.objectstyle.cayenne.ValueHolder;
+import org.objectstyle.cayenne.ValueHolder;
/**
* A generated persistent class mapped as "Painting" Cayenne entity. It is a good idea to
Modified: incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/CollectionEditPart.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/CollectionEditPart.java?rev=421091&r1=421090&r2=421091&view=diff
==============================================================================
--- incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/CollectionEditPart.java (original)
+++ incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/CollectionEditPart.java Tue Jul 11 19:53:14 2006
@@ -1,114 +1,61 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 Elias Volanakis and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
+/*
+ * Copyright 2006 The Apache Software Foundation
*
- * Contributors:
- * Elias Volanakis - initial API and implementation
- *******************************************************************************/
+ * Licensed 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.cayenne.ropbrowser.parts;
import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
import org.apache.cayenne.ropbrowser.figures.CollectionFigure;
-import org.apache.cayenne.ropbrowser.model.AbstractObject;
+import org.apache.cayenne.ropbrowser.figures.RelationshipLabel;
import org.apache.cayenne.ropbrowser.model.CollectionModelElement;
import org.apache.cayenne.ropbrowser.model.Connection;
+import org.apache.cayenne.ropbrowser.model.ElementDiagram;
import org.apache.cayenne.ropbrowser.model.ModelElement;
-import org.apache.cayenne.ropbrowser.model.NullModelElement;
-import org.apache.cayenne.ropbrowser.model.ObjectDiagram;
import org.apache.cayenne.ropbrowser.policies.CollectionDirectEditPolicy;
import org.apache.cayenne.ropbrowser.policies.CollectionSelectionPolicy;
-import org.eclipse.draw2d.ChopboxAnchor;
-import org.eclipse.draw2d.ConnectionAnchor;
import org.eclipse.draw2d.Figure;
import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-import org.eclipse.gef.ConnectionEditPart;
import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.NodeEditPart;
import org.eclipse.gef.Request;
import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
import org.eclipse.gef.requests.DirectEditRequest;
-import org.objectstyle.cayenne.map.Relationship;
/**
- * EditPart used for Shape instances (more specific for EllipticalShape and
- * RectangularShape instances).
- * <p>This edit part must implement the PropertyChangeListener interface,
- * so it can be notified of property changes in the corresponding model element.
- * </p>
+ * EditPart for the {@link CollectionModelElement} class. Allows
+ * scrolling through records and expansion of relationships.
*
- * @author Elias Volanakis
+ * @author Marcel Gordon
*/
class CollectionEditPart extends ElementEditPart {
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
+ /**
+ * Extends super to allow scrolling through records on double-click and
+ * expansion of relationships on single-click.
+ *
+ * @see ElementEditPart#createEditPolicies()
*/
protected void createEditPolicies() {
- // allow removal of the associated model element
- // installEditPolicy(EditPolicy.COMPONENT_ROLE, new ShapeComponentEditPolicy());
- //installEditPolicy(EditPolicy.COMPONENT_ROLE, new RootComponentEditPolicy());
+ super.createEditPolicies();
+
installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new CollectionSelectionPolicy());
- installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new CollectionDirectEditPolicy());
- // allow the creation of connections and
- // and the reconnection of connections between Shape instances
- /* installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new GraphicalNodeEditPolicy() {
- /* (non-Javadoc)
- * @see org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getConnectionCompleteCommand(org.eclipse.gef.requests.CreateConnectionRequest)
- *
- protected Command getConnectionCompleteCommand(CreateConnectionRequest request) {
- ConnectionCreateCommand cmd
- = (ConnectionCreateCommand) request.getStartCommand();
- cmd.setTarget((Shape) getHost().getModel());
- return cmd;
- }
- /* (non-Javadoc)
- * @see org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getConnectionCreateCommand(org.eclipse.gef.requests.CreateConnectionRequest)
- *
- protected Command getConnectionCreateCommand(CreateConnectionRequest request) {
- Shape source = (Shape) getHost().getModel();
- int style = ((Integer) request.getNewObjectType()).intValue();
- ConnectionCreateCommand cmd = new ConnectionCreateCommand(source, style);
- request.setStartCommand(cmd);
- return cmd;
- }
- /* (non-Javadoc)
- * @see org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getReconnectSourceCommand(org.eclipse.gef.requests.ReconnectRequest)
- *
- protected Command getReconnectSourceCommand(ReconnectRequest request) {
- Connection conn = (Connection) request.getConnectionEditPart().getModel();
- Shape newSource = (Shape) getHost().getModel();
- ConnectionReconnectCommand cmd = new ConnectionReconnectCommand(conn);
- cmd.setNewSource(newSource);
- return cmd;
- }
- /* (non-Javadoc)
- * @see org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getReconnectTargetCommand(org.eclipse.gef.requests.ReconnectRequest)
- *
- protected Command getReconnectTargetCommand(ReconnectRequest request) {
- Connection conn = (Connection) request.getConnectionEditPart().getModel();
- Shape newTarget = (Shape) getHost().getModel();
- ConnectionReconnectCommand cmd = new ConnectionReconnectCommand(conn);
- cmd.setNewTarget(newTarget);
- return cmd;
- }
- }); */
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new CollectionDirectEditPolicy());
}
- /*(non-Javadoc)
+ /**
* @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
*/
protected IFigure createFigure() {
@@ -120,17 +67,18 @@
return figure;
}
- /* (non-Javadoc)
+ /**
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
*/
public void propertyChange(PropertyChangeEvent evt) {
super.propertyChange(evt);
- System.out.println("Event");
-
String prop = evt.getPropertyName();
- if (!ModelElement.PROP_TRANSIENT.equals(prop) && !ModelElement.PROP_TARGET_CONN.equals(prop) && !ModelElement.PROP_SOURCE_CONN.equals(prop)) {
- ((CollectionFigure) getFigure()).setAttributes(getModelCast().getCurrent());
+ if (CollectionModelElement.PROP_CURRENT_RECORD.equals(prop)) {
+ getModelCast().updateConnectedElements();
+ }
+ else if (!ModelElement.PROP_TRANSIENT.equals(prop) && !ModelElement.PROP_TARGET_CONN.equals(prop) && !ModelElement.PROP_SOURCE_CONN.equals(prop)) {
+ ((CollectionFigure) getFigure()).refresh(getModelCast().getCurrent());
}
}
@@ -139,55 +87,43 @@
}
/**
+ * Handles {@link RequestConstants#REQ_OPEN} and {@link RequestConstants#REQ_DIRECT_EDIT} requests
+ * to allow scrolling through records and expansion of relationships.
+ *
* @see org.eclipse.gef.EditPart#performRequest(org.eclipse.gef.Request)
*/
public void performRequest(Request request)
{
+ // TODO deal with these in terms of commands
// TODO keybinding
if (request.getType().equals(RequestConstants.REQ_OPEN)) {
getModelCast().next();
- getModelCast().updateConnections();
+ getModelCast().updateConnectedElements();
}
if (request.getType().equals(RequestConstants.REQ_DIRECT_EDIT)) {
- Point loc = ((DirectEditRequest) request).getLocation().getCopy();
- Figure relationshipCompartment = ((CollectionFigure) getFigure()).getRelationshipCompartment();
- relationshipCompartment.translateToRelative(loc);
- if (relationshipCompartment.containsPoint(loc)) {
- Iterator children = relationshipCompartment.getChildren().iterator();
- Iterator relationships = getModelCast().getCurrent().getRelationships().iterator();
- while (children.hasNext() && relationships.hasNext()) {
- Figure figure = (Figure) children.next();
- Relationship rel = (Relationship) relationships.next();
- if (figure instanceof Label) {
- Label label = (Label) figure;
- Point location = ((DirectEditRequest) request).getLocation().getCopy();
- label.translateToRelative(location);
- if (label.containsPoint(location)) {
-
- ModelElement element = null;
- // follow the relationship to get the object
- Object value = getModelCast().getCurrent().followRelationship(rel);
-
- if (value == null || (value instanceof List && ((List) value).isEmpty())) {
- element = new NullModelElement(rel.getTargetEntityName());
- }
- else {
- CollectionModelElement e = new CollectionModelElement(getModelCast().getCurrent());
- if (rel.isToMany()) {
- e.setObjects((List) value);
- }
- else {
- e.setObjects(Arrays.asList(new AbstractObject[] {(AbstractObject) value}));
- }
- element = e;
- }
-
- if (((ObjectDiagram) ((ObjectDiagramEditPart) getParent()).getModel()).addElement(element)) {
- Connection conn = new Connection(getModelCast(), element, rel);
- }
-
- return;
+ if (getModelCast().getCurrent() != null) {
+
+ Point loc = ((DirectEditRequest) request).getLocation().getCopy();
+ Figure relationshipCompartment = ((CollectionFigure) getFigure()).getRelationshipCompartment();
+ relationshipCompartment.translateToRelative(loc);
+
+ if (relationshipCompartment.containsPoint(loc)) {
+
+ RelationshipLabel label = (RelationshipLabel) relationshipCompartment.findFigureAt(loc);
+
+ if (label != null) {
+ // follow the relationship to get the object
+ Object value = getModelCast().getCurrent().followRelationship(label.getRelationship());
+
+ CollectionModelElement element = new CollectionModelElement(getModelCast());
+
+ element.setObjects(value);
+
+ if (((ElementDiagram) ((ElementDiagramEditPart) getParent()).getModel()).addElement(element)) {
+ Connection conn = new Connection(getModelCast(), element, label.getRelationship());
}
+
+ return;
}
}
}
Modified: incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ConnectionEditPart.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ConnectionEditPart.java?rev=421091&r1=421090&r2=421091&view=diff
==============================================================================
--- incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ConnectionEditPart.java (original)
+++ incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ConnectionEditPart.java Tue Jul 11 19:53:14 2006
@@ -1,8 +1,18 @@
/*
- * Created on 16/06/2006
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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.
*
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.apache.cayenne.ropbrowser.parts;
@@ -11,13 +21,19 @@
import org.eclipse.draw2d.PolylineConnection;
import org.eclipse.gef.editparts.AbstractConnectionEditPart;
+/**
+ * An EditPart for the {@link org.apache.cayenne.ropbrowser.model.Connection} class,
+ * representing a relationship between two ModelElements.
+ *
+ * @author Marcel Gordon
+ */
public class ConnectionEditPart extends AbstractConnectionEditPart {
@Override
protected void createEditPolicies() {
}
- /* (non-Javadoc)
+ /**
* @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
*/
protected IFigure createFigure() {
Added: incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ElementDiagramEditPart.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ElementDiagramEditPart.java?rev=421091&view=auto
==============================================================================
--- incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ElementDiagramEditPart.java (added)
+++ incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ElementDiagramEditPart.java Tue Jul 11 19:53:14 2006
@@ -0,0 +1,166 @@
+/*
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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.cayenne.ropbrowser.parts;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.List;
+
+import org.apache.cayenne.ropbrowser.commands.ElementSetConstraintCommand;
+import org.apache.cayenne.ropbrowser.model.ElementDiagram;
+import org.apache.cayenne.ropbrowser.model.ModelElement;
+import org.eclipse.draw2d.ConnectionLayer;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.FreeformLayer;
+import org.eclipse.draw2d.FreeformLayout;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.ShortestPathConnectionRouter;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.LayerConstants;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.gef.editpolicies.RootComponentEditPolicy;
+import org.eclipse.gef.editpolicies.XYLayoutEditPolicy;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.gef.requests.CreateRequest;
+
+/**
+ * EditPart for the ElementDiagram class, the root of the model.
+ * Effectively represents the canvas of the editor.
+ *
+ * @author Marcel Gordon
+ */
+public class ElementDiagramEditPart extends AbstractGraphicalEditPart
+ implements PropertyChangeListener {
+
+ /**
+ * Upon activation, attach to the model element as a property change listener.
+ */
+ public void activate() {
+ if (!isActive()) {
+ super.activate();
+ ((ElementDiagram) getModel()).addPropertyChangeListener(this);
+ }
+ }
+
+ /**
+ * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
+ */
+ protected void createEditPolicies() {
+ // disallows the removal of this edit part from its parent
+ installEditPolicy(EditPolicy.COMPONENT_ROLE, new RootComponentEditPolicy());
+ // handles constraint changes (e.g. moving and/or resizing) of model elements
+ // and creation of new model elements
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, new ElementXYLayoutEditPolicy());
+ }
+
+ /**
+ * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
+ */
+ protected IFigure createFigure() {
+ Figure f = new FreeformLayer();
+ f.setBorder(new MarginBorder(3));
+ f.setLayoutManager(new FreeformLayout());
+
+ // Create the static router for the connection layer
+ ConnectionLayer connLayer = (ConnectionLayer)getLayer(LayerConstants.CONNECTION_LAYER);
+ connLayer.setConnectionRouter(new ShortestPathConnectionRouter(f));
+
+ return f;
+ }
+
+ /**
+ * Upon deactivation, detach from the model element as a property change listener.
+ */
+ public void deactivate() {
+ if (isActive()) {
+ super.deactivate();
+ ((ElementDiagram) getModel()).removePropertyChangeListener(this);
+ }
+ }
+
+ /**
+ * @see org.eclipse.gef.editparts.AbstractEditPart#getModelChildren()
+ */
+ protected List getModelChildren() {
+ ElementDiagram diagram = (ElementDiagram) this.getModel();
+ return diagram.getObjects(); // return a list of objects
+ }
+
+ /**
+ * Respond to the adding and removing of elements from the diagram
+ * @see java.beans.PropertyChangeListener#propertyChange(PropertyChangeEvent)
+ */
+ public void propertyChange(PropertyChangeEvent evt) {
+ String prop = evt.getPropertyName();
+ if (ElementDiagram.PROP_NODE_ADDED.equals(prop)
+ || ElementDiagram.PROP_NODE_REMOVED.equals(prop)) {
+ refreshChildren();
+ }
+ }
+
+ /**
+ * An edit policy handling the layout of elements.
+ *
+ * @author Marcel Gordon
+ */
+ private static class ElementXYLayoutEditPolicy extends XYLayoutEditPolicy {
+
+ protected Command createAddCommand(EditPart child, Object constraint) {
+ return null;
+ }
+
+ /**
+ * @see ConstrainedLayoutEditPolicy#createChangeConstraintCommand(ChangeBoundsRequest, EditPart, Object)
+ */
+ protected Command createChangeConstraintCommand(ChangeBoundsRequest request,
+ EditPart child, Object constraint) {
+ if (child instanceof ElementEditPart && constraint instanceof Rectangle) {
+ return new ElementSetConstraintCommand(
+ (ModelElement) child.getModel(), request, (Rectangle) constraint);
+ }
+ return super.createChangeConstraintCommand(request, child, constraint);
+ }
+
+ /**
+ * @see ConstrainedLayoutEditPolicy#createChangeConstraintCommand(EditPart, Object)
+ */
+ protected Command createChangeConstraintCommand(EditPart child,
+ Object constraint) {
+ return null;
+ }
+
+ /**
+ * @see LayoutEditPolicy#getCreateCommand(CreateRequest)
+ */
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+
+ /**
+ * @see LayoutEditPolicy#getDeleteDependantCommand(org.eclipse.gef.Request)
+ */
+ protected Command getDeleteDependantCommand(Request request) {
+ return null;
+ }
+
+ }
+}
\ No newline at end of file
Modified: incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ElementEditPart.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ElementEditPart.java?rev=421091&r1=421090&r2=421091&view=diff
==============================================================================
--- incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ElementEditPart.java (original)
+++ incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ElementEditPart.java Tue Jul 11 19:53:14 2006
@@ -1,57 +1,47 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 Elias Volanakis and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
+/*
+ * Copyright 2006 The Apache Software Foundation
*
- * Contributors:
- * Elias Volanakis - initial API and implementation
- *******************************************************************************/
+ * Licensed 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.cayenne.ropbrowser.parts;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-import java.util.Iterator;
import java.util.List;
-import org.apache.cayenne.ropbrowser.figures.CollectionFigure;
-import org.apache.cayenne.ropbrowser.model.CollectionModelElement;
-import org.apache.cayenne.ropbrowser.model.Connection;
import org.apache.cayenne.ropbrowser.model.ModelElement;
-import org.apache.cayenne.ropbrowser.model.ObjectDiagram;
-import org.apache.cayenne.ropbrowser.policies.CollectionDirectEditPolicy;
-import org.apache.cayenne.ropbrowser.policies.CollectionSelectionPolicy;
+import org.apache.cayenne.ropbrowser.policies.ElementEditPolicy;
import org.eclipse.draw2d.ChopboxAnchor;
import org.eclipse.draw2d.ConnectionAnchor;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
-
import org.eclipse.gef.ConnectionEditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.GraphicalEditPart;
import org.eclipse.gef.NodeEditPart;
import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.objectstyle.cayenne.map.Relationship;
/**
- * EditPart used for Shape instances (more specific for EllipticalShape and
- * RectangularShape instances).
- * <p>This edit part must implement the PropertyChangeListener interface,
- * so it can be notified of property changes in the corresponding model element.
- * </p>
+ * Base abstract EditPart class corresponding to org.apache.cayenne.ropbrowser.model.ModelElement.
+ * EditPart classes whose models extend ModelElement ought to extend this class.
*
- * @author Elias Volanakis
+ * @author Marcel Gordon
*/
public abstract class ElementEditPart extends AbstractGraphicalEditPart
implements PropertyChangeListener, NodeEditPart {
+ /** anchor point for connections */
private ConnectionAnchor anchor;
/**
@@ -74,7 +64,15 @@
}
}
- /* (non-Javadoc)
+ /**
+ * Installs a basic edit policy allowing the deletion of elements. Sub-classes should extend.
+ */
+ protected void createEditPolicies() {
+ // allow removal of the associated model element
+ installEditPolicy(EditPolicy.COMPONENT_ROLE, new ElementEditPolicy());
+ }
+
+ /**
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
*/
public void propertyChange(PropertyChangeEvent evt) {
@@ -91,15 +89,19 @@
}
}
+ /**
+ * Returns the model cast to its basic type. Sub-classes should override.
+ */
private ModelElement getModelCast() {
return (ModelElement) getModel();
}
+ /**
+ * Method called in response to changes in the model and calls to refresh().
+ * This method should update the visual representation of the EditPart. Sub-classes
+ * should extend as this implementation handles basic operations such as resize and move.
+ */
protected void refreshVisuals() {
- // notify parent container of changed position & location
- // if this line is removed, the XYLayoutManager used by the parent container
- // (the Figure of the ShapesDiagramEditPart), will not know the bounds of this figure
- // and will not draw it correctly.
ModelElement model = getModelCast();
if (model.getWidth() == 0 && model.getHeight() == 0) {
model.setSize(getFigure().getPreferredSize().width, getFigure().getPreferredSize().height);
@@ -108,6 +110,9 @@
((GraphicalEditPart) getParent()).setLayoutConstraint(this, getFigure(), bounds);
}
+ /**
+ * Obtains the anchor used for connections on this EditPart's figure.
+ */
protected ConnectionAnchor getConnectionAnchor() {
if (anchor == null) {
anchor = new ChopboxAnchor(getFigure());
@@ -115,54 +120,45 @@
return anchor;
}
- /*
- * (non-Javadoc)
+ /**
* @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getModelSourceConnections()
*/
protected List getModelSourceConnections() {
return getModelCast().getSourceConnections();
}
- /*
- * (non-Javadoc)
+ /**
* @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getModelTargetConnections()
*/
protected List getModelTargetConnections() {
return getModelCast().getTargetConnections();
}
- /*
- * (non-Javadoc)
+ /**
* @see org.eclipse.gef.NodeEditPart#getSourceConnectionAnchor(org.eclipse.gef.ConnectionEditPart)
*/
public ConnectionAnchor getSourceConnectionAnchor(ConnectionEditPart connection) {
return getConnectionAnchor();
}
- /*
- * (non-Javadoc)
+ /**
* @see org.eclipse.gef.NodeEditPart#getSourceConnectionAnchor(org.eclipse.gef.Request)
*/
public ConnectionAnchor getSourceConnectionAnchor(Request request) {
return getConnectionAnchor();
}
- /*
- * (non-Javadoc)
+ /**
* @see org.eclipse.gef.NodeEditPart#getTargetConnectionAnchor(org.eclipse.gef.ConnectionEditPart)
*/
public ConnectionAnchor getTargetConnectionAnchor(ConnectionEditPart connection) {
return getConnectionAnchor();
}
- /*
- * (non-Javadoc)
+ /**
* @see org.eclipse.gef.NodeEditPart#getTargetConnectionAnchor(org.eclipse.gef.Request)
*/
public ConnectionAnchor getTargetConnectionAnchor(Request request) {
return getConnectionAnchor();
- }
-
- protected void createEditPolicies() {
}
}
Added: incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ElementEditPartFactory.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ElementEditPartFactory.java?rev=421091&view=auto
==============================================================================
--- incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ElementEditPartFactory.java (added)
+++ incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/parts/ElementEditPartFactory.java Tue Jul 11 19:53:14 2006
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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.cayenne.ropbrowser.parts;
+
+import org.apache.cayenne.ropbrowser.model.CollectionModelElement;
+import org.apache.cayenne.ropbrowser.model.Connection;
+import org.apache.cayenne.ropbrowser.model.ElementDiagram;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+
+/**
+ * Factory for edit parts used in the editor.
+ *
+ * @author Marcel Gordon
+ */
+public class ElementEditPartFactory implements EditPartFactory {
+
+ /**
+ * @see org.eclipse.gef.EditPartFactory#createEditPart(org.eclipse.gef.EditPart, java.lang.Object)
+ */
+ public EditPart createEditPart(EditPart context, Object modelElement) {
+ // get EditPart for model element
+ EditPart part = getPartForElement(modelElement);
+ // store model element in EditPart
+ part.setModel(modelElement);
+ return part;
+ }
+
+ /**
+ * Maps an object to an EditPart.
+ * @throws RuntimeException if no match was found (programming error)
+ */
+ private EditPart getPartForElement(Object object) {
+ if (object instanceof ElementDiagram) {
+ return new ElementDiagramEditPart();
+ }
+ if (object instanceof CollectionModelElement) {
+ return new CollectionEditPart();
+ }
+ if (object instanceof Connection) {
+ return new ConnectionEditPart();
+ }
+ throw new RuntimeException(
+ "Can't create part for model element: "
+ + ((object != null) ? object.getClass().getName() : "null"));
+ }
+
+}
\ No newline at end of file
Modified: incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/policies/CollectionDirectEditPolicy.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/policies/CollectionDirectEditPolicy.java?rev=421091&r1=421090&r2=421091&view=diff
==============================================================================
--- incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/policies/CollectionDirectEditPolicy.java (original)
+++ incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/policies/CollectionDirectEditPolicy.java Tue Jul 11 19:53:14 2006
@@ -1,8 +1,18 @@
/*
- * Created on 15/06/2006
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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.
*
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.apache.cayenne.ropbrowser.policies;
@@ -10,6 +20,11 @@
import org.eclipse.gef.editpolicies.DirectEditPolicy;
import org.eclipse.gef.requests.DirectEditRequest;
+/**
+ * An empty {@link org.eclipse.gef.editpolicies.DirectEditPolicy}.
+ *
+ * @author Marecl Gordon
+ */
public class CollectionDirectEditPolicy extends DirectEditPolicy {
@Override
Modified: incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/policies/CollectionSelectionPolicy.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/policies/CollectionSelectionPolicy.java?rev=421091&r1=421090&r2=421091&view=diff
==============================================================================
--- incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/policies/CollectionSelectionPolicy.java (original)
+++ incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/policies/CollectionSelectionPolicy.java Tue Jul 11 19:53:14 2006
@@ -1,13 +1,28 @@
/*
- * Created on 15/06/2006
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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.
*
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.apache.cayenne.ropbrowser.policies;
import org.eclipse.gef.editpolicies.SelectionEditPolicy;
+/**
+ * An empty {@link org.eclipse.gef.editpolicies.SelectionEditPolicy}.
+ *
+ * @author Marcel Gordon
+ */
public class CollectionSelectionPolicy extends SelectionEditPolicy {
protected void showSelection() {
Added: incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/policies/ElementEditPolicy.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/policies/ElementEditPolicy.java?rev=421091&view=auto
==============================================================================
--- incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/policies/ElementEditPolicy.java (added)
+++ incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/policies/ElementEditPolicy.java Tue Jul 11 19:53:14 2006
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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.cayenne.ropbrowser.policies;
+
+import org.apache.cayenne.ropbrowser.commands.ElementDeleteCommand;
+import org.apache.cayenne.ropbrowser.model.CollectionModelElement;
+import org.apache.cayenne.ropbrowser.model.ElementDiagram;
+import org.apache.cayenne.ropbrowser.model.ModelElement;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.ComponentEditPolicy;
+import org.eclipse.gef.requests.GroupRequest;
+
+/**
+ * A {@link org.eclipse.gef.editpolicies.ComponentEditPolicy} which provides a delete command
+ *
+ * @author Marcel Gordon
+ */
+public class ElementEditPolicy extends ComponentEditPolicy {
+
+ /**
+ * @see org.eclipse.gef.editpolicies.ComponentEditPolicy#createDeleteCommand(org.eclipse.gef.requests.GroupRequest)
+ */
+ protected Command createDeleteCommand(GroupRequest deleteRequest) {
+ Object parent = getHost().getParent().getModel();
+ Object child = getHost().getModel();
+ if (parent instanceof ElementDiagram && child instanceof ModelElement) {
+ if (child instanceof CollectionModelElement) {
+ // don't allow deletion of the original ModelElement
+ if (((CollectionModelElement) child).getCreatedFrom() == null) {
+ return null;
+ }
+ }
+ return new ElementDeleteCommand((ElementDiagram) parent, (ModelElement) child);
+ }
+ return super.createDeleteCommand(deleteRequest);
+ }
+}
\ No newline at end of file
Modified: incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/views/ControlPanelView.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/views/ControlPanelView.java?rev=421091&r1=421090&r2=421091&view=diff
==============================================================================
--- incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/views/ControlPanelView.java (original)
+++ incubator/cayenne/soc/trunk/cayenne-rop/rop-browser/src/org/apache/cayenne/ropbrowser/views/ControlPanelView.java Tue Jul 11 19:53:14 2006
@@ -1,22 +1,27 @@
/*
- * Created on 6/06/2006
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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.
*
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.apache.cayenne.ropbrowser.views;
-import java.util.Date;
-import java.util.Hashtable;
import java.util.Iterator;
-import java.util.List;
import org.apache.cayenne.ropbrowser.ConnectionManager;
import org.apache.cayenne.ropbrowser.ObjectEditor;
import org.apache.cayenne.ropbrowser.ObjectEditorInput;
import org.apache.cayenne.ropbrowser.ROPBrowserPlugin;
-import org.apache.cayenne.ropbrowser.model.Artist;
-import org.apache.cayenne.ropbrowser.model.CollectionModelElement;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.events.SelectionEvent;
@@ -30,42 +35,48 @@
import org.eclipse.ui.forms.widgets.Form;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.objectstyle.cayenne.CayenneContext;
-import org.objectstyle.cayenne.DataObject;
import org.objectstyle.cayenne.ObjectContext;
-import org.objectstyle.cayenne.map.Attribute;
+import org.objectstyle.cayenne.event.CayenneEvent;
import org.objectstyle.cayenne.map.EntityResolver;
-import org.objectstyle.cayenne.map.ObjAttribute;
-import org.objectstyle.cayenne.map.ObjEntity;
-import org.objectstyle.cayenne.property.ClassDescriptor;
-import org.objectstyle.cayenne.property.Property;
-import org.objectstyle.cayenne.query.NamedQuery;
import org.objectstyle.cayenne.query.Query;
+/**
+ * An Eclipse view for connecting to the Cayenne web service and launching queries.
+ *
+ * @author Marcel Gordon
+ */
public class ControlPanelView extends ViewPart implements SelectionListener {
+ /** ID of the view */
public static final String ID = "org.apache.cayenne.ropbrowser.views.ControlPanelView";
+ /** name of the preference used to store the server last connected to */
private static final String PREF_SERVER = "CONTROL_PANEL_SERVER";
+ /** toolkit for creating of form elements */
private FormToolkit toolkit;
private Form form;
// TODO change to a drop down to take advantage of maintained connections
// reselecting should switch back
+ /** server to connect to */
private Text serverText;
+ /** button initiates connection */
private Button connectButton;
+ /** dropdown for selecting a query to run */
private CCombo queryCombo;
+ /** button to launch query editor */
private Button runQueryButton;
+ /** manages connections to the server */
private ConnectionManager connectionManager;
- private ObjectContext currentContext;
public ControlPanelView() {
connectionManager = ConnectionManager.getInstance();
}
- @Override
+ /**
+ * Create the controls for the view. Called internally.
+ */
public void createPartControl(Composite parent) {
toolkit = new FormToolkit(parent.getDisplay());
form = toolkit.createForm(parent);
@@ -96,22 +107,25 @@
runQueryButton.addSelectionListener(this);
toolkit.paintBordersFor(form.getBody());
- form.getBody().pack();
+ form.getBody().pack();
}
-
+
@Override
public void setFocus() {
form.setFocus();
}
+ /**
+ * Handle connections to the server and running of queries.
+ */
public void widgetSelected(SelectionEvent e) {
if (e.getSource() == connectButton) {
ROPBrowserPlugin.getDefault().getPluginPreferences().setValue(PREF_SERVER, serverText.getText());
- this.currentContext = connectionManager.connect(serverText.getText());
+ ObjectContext currentContext = connectionManager.getObjectContext(serverText.getText());
// get all the queries for this connection
- EntityResolver entityResolver = this.currentContext.getEntityResolver();
+ EntityResolver entityResolver = currentContext.getEntityResolver();
Iterator i = entityResolver.getQueries().iterator();
while (i.hasNext()) {
queryCombo.add(((Query)i.next()).getName());
@@ -119,76 +133,11 @@
}
else if (e.getSource() == runQueryButton) {
try {
- getViewSite().getPage().openEditor(new ObjectEditorInput(this.currentContext, queryCombo.getText()), ObjectEditor.ID, true);
+ getViewSite().getPage().openEditor(new ObjectEditorInput(this.connectionManager.getObjectContext(serverText.getText()), queryCombo.getText()), ObjectEditor.ID, true);
} catch (PartInitException ex) {
System.out.println(ex.getMessage());
}
}
- /*
- NamedQuery select = new NamedQuery("ArtistQuery");
- List matches = context.performQuery(select);
-
- CollectionModelElement coll = new CollectionModelElement();
- coll.setObjects(matches);
-
- IPropertyDescriptor [] descs = coll.getPropertyDescriptors();
- System.out.println("--------Artists-------");
- System.out.println("Descs: " + descs.length);
- for (int j = 0; j < 3; j++) {
- System.out.println("--------");
- for (IPropertyDescriptor desc : descs) {
- System.out.println(desc.getDisplayName());
- System.out.println(coll.getPropertyValue(desc.getId()));
- }
- coll.next();
- }
-
- coll.setObjects(context.performQuery(new NamedQuery("GalleryQuery")));
-
- descs = coll.getPropertyDescriptors();
- System.out.println("--------Galleries-------");
- System.out.println("Descs: " + descs.length);
- for (int j = 0; j < 3; j++) {
- System.out.println("--------");
- for (IPropertyDescriptor desc : descs) {
- System.out.println(desc.getDisplayName());
- System.out.println(coll.getPropertyValue(desc.getId()));
- }
- coll.next();
- }
-
- */
- //artist.setPropertyValue(descs[0].getId(), "false");
- //context.commitChanges();
-
- // TESTING SECTION
- /*
-
- ObjEntity obj = entityResolver.getObjEntity("Artist");
- Iterator k = obj.getAttributes().iterator();
-
- ClassDescriptor test = entityResolver.getClassDescriptor("Artist");
-
- System.out.println("Attributes");
- while (k.hasNext()) {
- ObjAttribute a = (ObjAttribute) k.next();
- System.out.println(a.getName());
- System.out.println(a.getType());
- Property p = test.getProperty(a.getName());
- System.out.println(p.getName());
- System.out.println(p.readProperty(artist));
- }
-
-
- i = test.getProperties();
-
- System.out.println("Properties");
- while (i.hasNext()) {
- Property p = (Property) i.next();
- System.out.println(p.getName());
- System.out.println(p.readProperty(artist));
- }
- */
}
public void widgetDefaultSelected(SelectionEvent e) {