⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shapeshell.java

📁 一个可视化编辑器的基础结构
💻 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 + -