| /* |
| * Copyright 2000-2012 JetBrains s.r.o. |
| * |
| * 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 com.intellij.designer.designSurface; |
| |
| import com.intellij.designer.DesignerBundle; |
| import com.intellij.designer.model.RadComponent; |
| import org.jetbrains.annotations.Nullable; |
| |
| import java.awt.*; |
| import java.awt.event.InputEvent; |
| import java.util.List; |
| |
| /** |
| * @author Alexander Lobas |
| */ |
| public final class OperationContext { |
| public static final String MOVE = "move_children"; |
| public static final String ADD = "add_children"; |
| public static final String CREATE = "create_children"; |
| public static final String PASTE = "paste_children"; |
| |
| private Object myType; |
| private EditableArea myArea; |
| private RadComponent myContainer; |
| private List<RadComponent> myComponents; |
| private InputEvent myInputEvent; |
| private int myModifiers; |
| private Point myLocation; |
| private Point myMoveDelta; |
| private Dimension mySizeDelta; |
| private int myResizeDirection; |
| |
| private boolean myMoveEnabled = true; |
| private boolean myAddEnabled = true; |
| |
| public OperationContext() { |
| } |
| |
| public OperationContext(Object type) { |
| myType = type; |
| } |
| |
| public Object getType() { |
| return myType; |
| } |
| |
| public void setType(@Nullable Object type) { |
| myType = type; |
| } |
| |
| public String getMessage() { |
| return DesignerBundle.message(myType == null ? "command.tool_operation" : myType.toString()); |
| } |
| |
| public boolean is(Object type) { |
| if (myType == type) { |
| return true; |
| } |
| if (myType != null) { |
| return myType.equals(type); |
| } |
| return false; |
| } |
| |
| public boolean isMove() { |
| return is(MOVE); |
| } |
| |
| public boolean isAdd() { |
| return is(ADD); |
| } |
| |
| public boolean isCreate() { |
| return is(CREATE); |
| } |
| |
| public boolean isPaste() { |
| return is(PASTE); |
| } |
| |
| public boolean isTree() { |
| return myArea.isTree(); |
| } |
| |
| public EditableArea getArea() { |
| return myArea; |
| } |
| |
| public void setArea(EditableArea area) { |
| myArea = area; |
| } |
| |
| public RadComponent getContainer() { |
| return myContainer; |
| } |
| |
| public void setContainer(RadComponent container) { |
| myContainer = container; |
| } |
| |
| public List<RadComponent> getComponents() { |
| return myComponents; |
| } |
| |
| public void setComponents(@Nullable List<RadComponent> components) { |
| myComponents = components; |
| } |
| |
| public boolean isMoveEnabled() { |
| return myMoveEnabled; |
| } |
| |
| public void resetMoveAddEnabled() { |
| myMoveEnabled = true; |
| myAddEnabled = true; |
| } |
| |
| public void setMoveEnabled(boolean enabled) { |
| myMoveEnabled &= enabled; |
| } |
| |
| public void setAddEnabled(boolean enabled) { |
| myAddEnabled &= enabled; |
| } |
| |
| public boolean isAddEnabled() { |
| return myAddEnabled; |
| } |
| |
| public InputEvent getInputEvent() { |
| return myInputEvent; |
| } |
| |
| public void setInputEvent(InputEvent inputEvent) { |
| myInputEvent = inputEvent; |
| } |
| |
| public int getModifiers() { |
| return myModifiers; |
| } |
| |
| public void setModifiers(int modifiers) { |
| myModifiers = modifiers; |
| } |
| |
| public Point getLocation() { |
| return myLocation; |
| } |
| |
| public void setLocation(Point location) { |
| myLocation = location; |
| } |
| |
| public Point getMoveDelta() { |
| return myMoveDelta; |
| } |
| |
| public void setMoveDelta(Point moveDelta) { |
| myMoveDelta = moveDelta; |
| } |
| |
| public Dimension getSizeDelta() { |
| return mySizeDelta; |
| } |
| |
| public void setSizeDelta(Dimension sizeDelta) { |
| mySizeDelta = sizeDelta; |
| } |
| |
| public Rectangle getTransformedRectangle(Rectangle r) { |
| return new Rectangle(r.x + myMoveDelta.x, r.y + myMoveDelta.y, r.width + mySizeDelta.width, r.height + mySizeDelta.height); |
| } |
| |
| public int getResizeDirection() { |
| return myResizeDirection; |
| } |
| |
| public void setResizeDirection(int resizeDirection) { |
| myResizeDirection = resizeDirection; |
| } |
| } |