?? teditordemo.java
字號:
/*
* This source code is part of TWaver 1.3.1
*
* SERVA Software PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* Copyright 2000-2005 SERVA Software, Inc. All rights reserved.
*/
package demo.editor;
import java.awt.BorderLayout;
import java.awt.datatransfer.DataFlavor;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetDragEvent;
import java.awt.dnd.DropTargetDropEvent;
import java.awt.dnd.DropTargetEvent;
import java.awt.dnd.DropTargetListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JToolBar;
import twaver.Element;
import twaver.TDataBox;
import twaver.TWaverConst;
import twaver.network.NetworkToolBarFactory;
import twaver.network.TNetwork;
import twaver.table.TPropertySheet;
import twaver.tree.TTree;
import demo.DemoPane;
public class TEditorDemo extends DemoPane implements DropTargetListener {
TDataBox box = new TDataBox("DataBox");
TNetwork network = new TNetwork(box);
TTree tree = new TTree(box);
JScrollPane treeScroll = new JScrollPane(tree);
JPanel rootPane = new JPanel();
BorderLayout rootPaneLayout = new BorderLayout();
JLabel statusPane = new JLabel();
JPanel mainPane = new JPanel();
BorderLayout mainPaneLayout = new BorderLayout();
JSplitPane rootSplit = new JSplitPane();
JPanel leftPane = new JPanel();
JPanel rightPane = new JPanel();
BorderLayout rightPaneLayout = new BorderLayout();
JSplitPane leftSplit = new JSplitPane();
BorderLayout leftPaneLayout = new BorderLayout();
PalettePane palettePane = new PalettePane(network);
JPanel hierarchyPane = new JPanel();
BorderLayout hierarchyPaneLayout = new BorderLayout();
TPropertySheet sheet = new TPropertySheet(box);
JScrollPane sheetScroll = new JScrollPane(sheet);
public TEditorDemo() {
try {
jbInit();
// set network
new DropTarget(network.getCanvas(), DnDConstants.ACTION_REFERENCE, this);
network.setElementMakedVisibleOnSelected(true);
network.setElementDeletable(true);
network.setElementDraggable(true);
network.setElementResizable(true);
// set tree
tree.setElementMakedVisibleOnSelected(true);
tree.setElementDeletable(true);
tree.setElementDraggable(true);
// set propertySheet
sheet.setElementEditable(true);
}
catch (Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
network.setToolbar(null);
JToolBar toolbar = NetworkToolBarFactory.getToolBar(TWaverConst.DEFAULT_TOOLBAR, network);
this.add(toolbar, BorderLayout.NORTH);
rootPane.setLayout(rootPaneLayout);
statusPane.setText("Ready");
mainPane.setLayout(mainPaneLayout);
rightPane.setLayout(rightPaneLayout);
leftPane.setLayout(leftPaneLayout);
leftSplit.setOrientation(JSplitPane.VERTICAL_SPLIT);
leftSplit.setContinuousLayout(true);
rootSplit.setContinuousLayout(true);
hierarchyPane.setLayout(hierarchyPaneLayout);
this.add(rootPane, BorderLayout.CENTER);
rootPane.add(statusPane, BorderLayout.SOUTH);
rootPane.add(mainPane, BorderLayout.CENTER);
mainPane.add(rootSplit, BorderLayout.CENTER);
rootSplit.add(leftPane, JSplitPane.LEFT);
leftPane.add(leftSplit, BorderLayout.CENTER);
leftSplit.add(hierarchyPane, JSplitPane.TOP);
rootSplit.add(rightPane, JSplitPane.RIGHT);
rightPane.add(network, BorderLayout.CENTER);
rightPane.add(palettePane, BorderLayout.NORTH);
hierarchyPane.add(treeScroll, BorderLayout.CENTER);
treeScroll.getViewport().add(tree, null);
leftSplit.add(sheetScroll, JSplitPane.BOTTOM);
sheetScroll.getViewport().add(sheet, null);
leftSplit.setDividerLocation(200);
rootSplit.setDividerLocation(200);
network.getCanvas().addMouseListener(new MouseAdapter() {
public void mouseExited(MouseEvent e) {
statusPane.setText("Ready");
}
});
network.getCanvas().addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
int x = (int)(e.getPoint().getX() / network.getZoomer().getZoom());
int y = (int)(e.getPoint().getY() / network.getZoomer().getZoom());
statusPane.setText("x=" + x + " y=" + y);
}
public void mouseMoved(MouseEvent e) {
int x = (int)(e.getPoint().getX() / network.getZoomer().getZoom());
int y = (int)(e.getPoint().getY() / network.getZoomer().getZoom());
statusPane.setText("x=" + x + " y=" + y);
}
});
}
public void dragEnter(DropTargetDragEvent dtde) {
}
public void dragOver(DropTargetDragEvent dtde) {
}
public void dropActionChanged(DropTargetDragEvent dtde) {
}
public void dragExit(DropTargetEvent dte) {
}
public void drop(DropTargetDropEvent e) {
try {
if (e.isDataFlavorSupported(DataFlavor.stringFlavor)) {
String className = (String) e.getTransferable().getTransferData(DataFlavor.stringFlavor);
Element element = (Element) Class.forName(className).newInstance();
element.setName(className.substring(className.lastIndexOf(".") + 1));
double x = e.getLocation().getX()/network.getZoomer().getZoom() - element.getWidth() / 2;
double y = e.getLocation().getY()/network.getZoomer().getZoom() - element.getHeight() / 2;
x = x > 0 ? x : 0;
y = y > 0 ? y : 0;
element.setLocation(x, y);
box.addElement(element);
//set current subnetwork to this new element's parent.
if (network.getSubNetwork() != null) {
element.setParent(network.getSubNetwork());
}
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public String getTitle() {
return "Editor Demo";
}
public String getHelp() {
return "This demo is a simple edit tools "+
"for creating network topology or equipment chassis."+
" You can edit, open or save data via XML file."+
"<p>Drag an object from palette and drop it on canvas to create new element.";
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -