01: package org.drools.eclipse.flow.common.editor.policy;
02:
03: /*
04: * Copyright 2005 JBoss Inc
05: *
06: * Licensed under the Apache License, Version 2.0 (the "License");
07: * you may not use this file except in compliance with the License.
08: * You may obtain a copy of the License at
09: *
10: * http://www.apache.org/licenses/LICENSE-2.0
11: *
12: * Unless required by applicable law or agreed to in writing, software
13: * distributed under the License is distributed on an "AS IS" BASIS,
14: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15: * See the License for the specific language governing permissions and
16: * limitations under the License.
17: */
18:
19: import org.drools.eclipse.flow.common.editor.core.ElementWrapper;
20: import org.drools.eclipse.flow.common.editor.core.ProcessWrapper;
21: import org.drools.eclipse.flow.common.editor.core.command.AddElementCommand;
22: import org.drools.eclipse.flow.common.editor.core.command.ChangeConstraintCommand;
23: import org.eclipse.draw2d.geometry.Rectangle;
24: import org.eclipse.gef.EditPart;
25: import org.eclipse.gef.Request;
26: import org.eclipse.gef.commands.Command;
27: import org.eclipse.gef.editpolicies.XYLayoutEditPolicy;
28: import org.eclipse.gef.requests.CreateRequest;
29:
30: /**
31: * Policy for performing layout of a process.
32: *
33: * @author <a href="mailto:kris_verlaenen@hotmail.com">Kris Verlaenen</a>
34: */
35: public class ProcessLayoutEditPolicy extends XYLayoutEditPolicy {
36:
37: protected Command getCreateCommand(CreateRequest request) {
38: AddElementCommand command = new AddElementCommand();
39: command.setParent((ProcessWrapper) getHost().getModel());
40: ElementWrapper element = (ElementWrapper) request
41: .getNewObject();
42: element.setConstraint((Rectangle) getConstraintFor(request));
43: command.setChild(element);
44: return command;
45: }
46:
47: protected Command getDeleteDependantCommand(Request request) {
48: return null;
49: }
50:
51: protected Command createAddCommand(EditPart child, Object constraint) {
52: ElementWrapper element = (ElementWrapper) child.getModel();
53: AddElementCommand add = new AddElementCommand();
54: add.setParent((ProcessWrapper) getHost().getModel());
55: add.setChild(element);
56: return add;
57: }
58:
59: protected Command createChangeConstraintCommand(EditPart child,
60: Object constraint) {
61: ChangeConstraintCommand command = new ChangeConstraintCommand();
62: command.setElement((ElementWrapper) child.getModel());
63: command.setConstraint((Rectangle) constraint);
64: return command;
65: }
66: }
|