📄 shapeshell.java
字号:
package org.goshawk.workflow.GUI.ShapeShell;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.PopupMenu;
import java.awt.Shape;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import org.goshawk.workflow.GUI.MouseCommand.MouseCommand;
public abstract class ShapeShell
{
protected String id = "";
/**当两个图形重合在一起时根据isFirst的大小选择移动哪个图形,系统将选择isFirst为true的那个图形**/
protected boolean isFirst = true;
protected boolean isSelected = false;
protected boolean isSelectable = true;
protected Color selectedColor = new Color(0,0,200);
protected Color unselectColor = new Color(0,0,0);
public Color getSelectedColor()
{
return selectedColor;
}
public void setSelectedColor(Color selectedColor)
{
this.selectedColor = selectedColor;
}
public Color getUnselectColor()
{
return unselectColor;
}
public void setUnselectColor(Color unselectColor)
{
this.unselectColor = unselectColor;
}
public boolean isSelectable()
{
return isSelectable;
}
public void setSelectable(boolean isSelectable)
{
this.isSelectable = isSelectable;
}
public boolean isSelected()
{
return isSelected;
}
public void setSelected(boolean isSelected)
{
this.isSelected = isSelected;
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public boolean isFirst()
{
return isFirst;
}
public void setFirst(boolean isFirst)
{
this.isFirst = isFirst;
}
public void dealCover(ShapeShell shape)
{
if(shape!=null && !shape.getId().equals(this.getId()) && !shape.getId().equals(MouseCommand.RECT_AREA)&&this.isFirst && shape.isCovered(this))
{
shape.isFirst = false;
}
else
{
shape.isFirst = true;
}
}
public void ravelCovered(Map shapeMap)
{
boolean isCovered = false;
Collection shapeSet = shapeMap.values();
Iterator iter = shapeSet.iterator();
while(iter.hasNext())
{
ShapeShell shape = (ShapeShell)iter.next();
if(shape!=null && !this.getId().equals(shape.getId()) && !shape.getId().equals(MouseCommand.RECT_AREA))
{
isCovered = isCovered(shape) || isCovered;
}
}
isFirst = !isCovered;
}
public boolean isCovered()
{
return !isFirst;
}
private boolean isCovered(ShapeShell shape)
{
return (this.getX()==shape.getX()&&this.getY()==shape.getY()&&this.getWidth()==shape.getWidth()&&this.getHeight()==shape.getHeight());
}
public abstract boolean contains(int x, int y) ;
public abstract Shape getShape();
public abstract void setShape(Shape shape) throws ShapeShellException;
public abstract int getHeight();
public abstract void setHeight(int height);
public abstract int getWidth();
public abstract void setWidth(int width);
public abstract int getX();
public abstract void setX(int x);
public abstract int getY();
public abstract void setY(int y);
public abstract int getCenterX();
public abstract int getCenterY();
public abstract void paint(Graphics g);
public abstract PopupMenu getPopupMenu();
public abstract void setPopupMenu(PopupMenu menu);
public abstract Object clone();
public abstract void editShape(int mousex,int mousey);
public abstract void addOtherShape(ShapeShell shape);
public abstract ShapeShell getOtherShape(String id);
public abstract ShapeShell removeOtherShape(String id);
public abstract Map getOtherShapes();
public abstract Map setOtherShapes(Map shapes);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -