📄 toolbox.java
字号:
package webide.views.toolbox;
import webide.MainConsole;
import java.awt.Panel;
import java.awt.Dimension;
import java.awt.MediaTracker;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Component;
import java.net.URL;
import java.util.Vector;
import java.util.Hashtable;
import webide.form.PainterForm;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.io.*;
public class ToolBox extends Panel implements MouseListener,MouseMotionListener/*,Runnable*/
{
String beans[] = {"VB.uparrow", "VB.downarrow", "VB.leftarrow", "VB.rightarrow",
"VB.rect", "VB.arris","VB.parallel","VB.arc"};
String images[] = {"UpArrow", "DownArrow", "LeftArrow", "RightArrow",
"Rect", "Arris", "parallel", "Arc"};
int ctrlnum =1;
private int standCtrl =15;//20;
ImageLabel imagelabel[],tBCB;
String classPath = null;
MediaTracker mt;
SymKey aSymKey = new SymKey();
public int imageidex = 0;
public int selected = 0;
Vector beanNames = new Vector();
public boolean rembean = false;
Hashtable beanJars = new Hashtable();
MainConsole applet;
PainterForm form;
public static ToolBox toolbox;
public ToolBox(MainConsole applet1) {
this.applet=applet1;
this.form = applet1.pf;
setBackground(Color.green);
setLayout(new FlowLayout(FlowLayout.LEFT,0,1));
ctrlnum += beans.length;
imagelabel = new ImageLabel[ctrlnum];
getToolboxImage();
for (int i=0; i<imagelabel.length; i++)
{
if(imagelabel[i] != null)
{
add(imagelabel[i], i);
}
}
addKeyListener(aSymKey);
addMouseListener(this);
setBackground(Color.lightGray);
selected =0;
imagelabel[selected].tmpstate3();
tBCB = imagelabel[selected];
requestFocus();
toolbox = this;
}
public java.awt.Image getImage(String imgName) {
java.net.URL url = applet.getCodeBase();
String imgRes = applet.getParameter("imagesource") + "/" + imgName;
try {
url = new URL(url,imgRes);
}catch(Exception e) {
e.printStackTrace();
}
if (url != null) {
return applet.getImage(url);
}else{
return null;
}
}
private synchronized void getToolboxImage()
{
mt = new MediaTracker(this);
int id = 0;
java.awt.Image img = getImage("Point.gif");
mt.addImage(img, imageidex);
imagelabel[imageidex] = new ImageLabel(img);
imagelabel[imageidex].addMouseListener(this);
imagelabel[imageidex].addMouseMotionListener(this);
imagelabel[imageidex].addKeyListener(aSymKey);
imagelabel[imageidex].setName("Point");
imageidex++;
if (beans != null)
{
for (int i=0; i<beans.length; i++) {
int ind = beans[i].lastIndexOf('.');
String beanName = images[i];
java.awt.Image image = getImage(beanName + ".gif");
mt.addImage(image, imageidex);
imagelabel[imageidex] = new ImageLabel(image);
imagelabel[imageidex].addMouseListener(this);
imagelabel[imageidex].addMouseMotionListener(this);
imagelabel[imageidex].addKeyListener(aSymKey);
imagelabel[imageidex].setName(beanName);
imageidex++;
}
}
try{
mt.waitForAll();
}catch (Exception e) {}
} // end of getToolboxImage.
public void mouseDragged(MouseEvent evt) {}
public void mouseMoved(MouseEvent evt) {}
public void mouseEntered(MouseEvent evt)
{
rembean = false;
Object obj = evt.getSource();
if (obj instanceof ImageLabel){
if (getComponentCount()>1) rembean = true;
tBCB = (ImageLabel)obj;
}
}
public void mousePressed(MouseEvent evt)
{
rembean = false;
Object obj = evt.getSource();
if (obj instanceof ImageLabel)
{
if (getComponentCount()>1) rembean = true;
tBCB = (ImageLabel)obj;
}
}
public void mouseReleased(MouseEvent evt)
{
Object obj = evt.getSource();
if (evt.getModifiers() == java.awt.event.InputEvent.BUTTON3_MASK)
{
if (obj instanceof ImageLabel) {
int x = ((Component)obj).getLocation().x;
int y = ((Component)obj).getLocation().y;
}
}else
mreleased(obj);
}
public synchronized void mreleased(Object obj)
{
if (!(obj instanceof ImageLabel))
return;
ImageLabel tb = (ImageLabel)obj;
for(int i = 0; i<ctrlnum;i++)
{
if(tb == imagelabel[i]){
selected = i;
break;
}
}
if (imagelabel[0]!= tb)
imagelabel[0].tmpstate1();
tBCB = imagelabel[selected];
if (selected != 0) {
if (selected <standCtrl+1){
Object bean = getBeanObject(beans[selected-1]);
applet.setBean(bean);
}else{
Object bean = getBeanObject(beans[selected-1]);
applet.setBean(bean);
}
}
else{
applet.setBean(null);
}
}
public synchronized void setSelectBean()
{
if (selected == 0) return;
imagelabel[selected].tmpstate1();
selected = 0;
imagelabel[selected].tmpstate3();
tBCB = imagelabel[selected];
applet.setBean(null);
}
public void mouseExited(MouseEvent evt){
rembean = false;
}
public void mouseClicked(MouseEvent evt)
{
if(!(evt.getSource() instanceof webide.views.toolbox.ImageLabel))return;
int ind = evt.getModifiers();
if (ind == java.awt.event.InputEvent.BUTTON3_MASK)
return;
if(evt.getClickCount() == 2)
addcontrols();
} //end of mouseClicked.
public void addcontrols()
{
Object bean = getBeanObject(beans[selected-1]);
webide.Wrapper wrap = applet.pf.add_Controls(bean,false);
Component cp = (Component)bean;
Component self = cp;
Dimension dim = cp.getPreferredSize();
applet.pf.addComponent(applet.pf,cp);
cp.setBounds(getxcoordinates(applet.pf,dim.width),
getycoordinates(applet.pf,dim.height),dim.width, dim.height);
cp.setVisible(true);
applet.pf.setCurrentComponent(wrap);
applet.setBean(null);
}
private int getxcoordinates(PainterForm pf,int width){
int wid = pf.getSize().width - pf.getInsets().left - pf.getInsets().right;
if (wid < width) return pf.getInsets().left;
int xcoordinates = pf.getInsets().left + wid / 2 - width / 2 ;
return xcoordinates;
}
private int getycoordinates(PainterForm pf,int height){
int hei = pf.getSize().height - pf.getInsets().top - pf.getInsets().bottom;
if (hei < height) return pf.getInsets().top;
int ycoordinates = pf.getInsets().top + hei / 2 - height / 2 ;
return ycoordinates;
}
private Object getBeanObject(String beanName)
{
Object obj = null;
Class beanClass = null;
String className = beanName;
try {
beanClass = Class.forName(className);
} catch (Exception ex) {
ex.printStackTrace();
System.out.println("Warning: get class Exception!");
return null;
}
try {
obj = beanClass.newInstance();
}catch (Exception ex) {
ex.printStackTrace();
return null;
}catch(Error er) {
System.out.println("er = " + er);
return null;
}return obj;
} // end of getBeanObject.
public Object getBean(String className) {
for (int i = 0; i<beans.length; i++) {
if (className.equalsIgnoreCase(beans[i])) {
return getBeanObject(beans[i]);
}
}
return getJarBean(className);
}
private Object getJarBean(String name)
{
Object objbean = null;
Object obj = beanJars.get(name);
if (obj == null)
{
for (int i=0; i<beanNames.size(); i++) {
String bName = (String)beanNames.elementAt(i);
if (name.equalsIgnoreCase(bName)) {
name = bName;
break;
}
}
obj = beanJars.get(name);
return null;
}
return objbean;
}
class SymKey extends java.awt.event.KeyAdapter {
public void keyPressed(java.awt.event.KeyEvent event) {
}
}
public Dimension getPreferredSize()
{
return getMinimumSize();
}
public Dimension getMinimumSize()
{
return new Dimension(100,100);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -