argscelleditor.java
来自「UCS (Ultra Corba Simulator) is one more 」· Java 代码 · 共 151 行
JAVA
151 行
package com.corba.mnq.ui;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.util.EventObject;
import java.util.logging.Logger;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.event.CellEditorListener;
import javax.swing.tree.TreeCellEditor;
import com.corba.mnq.main.MNQmainFrame;
import com.corba.mnq.tool.Warehouse;
import com.corba.mnq.tool.idl.Args;
import com.corba.mnq.tool.idl.type.CTArray;
import com.corba.mnq.tool.idl.type.CTDeclaration;
import com.corba.mnq.tool.idl.type.CTExcept;
import com.corba.mnq.tool.idl.type.CTSequence;
import com.corba.mnq.tool.idl.type.CTStruct;
import com.corba.mnq.tool.idl.type.TypeBase;
import com.corba.mnq.xls.OpFlowNode;
public class ArgsCellEditor implements TreeCellEditor {
public ArgsCellEditor() {
super();
// TODO Auto-generated constructor stub
}
/** used for java.util.logging */
private static final Logger LOG = Logger.getLogger(ArgsCellEditor.class
.getName());
public Component getTreeCellEditorComponent(JTree tree, Object value,
boolean arg2, boolean arg3, boolean arg4, int arg5) {
MNQMutableTreeNode node = (MNQMutableTreeNode) value;
Component com = (Component) Warehouse.node2table.get(node);
if (com instanceof ArgsTable) {
com = ((ArgsTable) com).getComp();
}
if (com == null) {
com = createTreeCellEditorComponent(node, tree);
}
return com;
}
public static Component createTreeCellEditorComponent(
MNQMutableTreeNode node, JTree tree) {
Component com = null;
JLabel label = new JLabel();
Object o = node.getUserObject();
ArgsTableModel ptm = new ArgsTableModel();
ptm.setName(o.toString() + ":");
TypeBase tn = null;
if (o instanceof TypeBase) {
tn = (TypeBase) o;
if (checkEnableEditTalble(tn, label)) {
com = label;
} else {
com = new ArgsTable(ptm, tn, tree);
}
} else if (o instanceof Args) {
tn = ((Args) o).pt;
if (checkEnableEditTalble(tn, label)) {
com = label;
} else {
com = new ArgsTable(ptm, tn, tree);
}
} else if (o instanceof OpFlowNode) {
label.setText(o.toString());
com = label;
} else {
label.setText(o.toString());
com = label;
LOG.severe("Wrong UserObject for " + o.getClass().toString());
}
// if (tree == MNQmainFrame.resultTree) {
// JPanel panel = new JPanel(new BorderLayout());
// JCheckBox cb = new JCheckBox();
// cb.setSelected(true);
// panel.add(cb, BorderLayout.WEST);
// panel.add(com, BorderLayout.EAST);
// panel.setBackground(Color.WHITE);
//
// if (com instanceof ArgsTable) {
// ((ArgsTable) com).setComp(panel);
// cb.addChangeListener((ArgsTable) com);
// } else if (tn != null) {
// com = new ArgsTable(tn);
// ((ArgsTable) com).setComp(panel);
// cb.addChangeListener((ArgsTable) com);
// }
// }
Warehouse.node2table.put(node, com);
return com;
}
private static boolean checkEnableEditTalble(TypeBase t, JLabel label) {
if (t instanceof CTSequence || t instanceof CTDeclaration
|| t instanceof CTStruct || t instanceof CTExcept
|| t instanceof CTArray) {
label.setText(t.dmtn.getUserObject().toString());
return true;
}
return false;
}
public void cancelCellEditing() {
}
public boolean stopCellEditing() {
return false;
}
public Object getCellEditorValue() {
return null;
}
public boolean isCellEditable(EventObject arg0) {
return true;
}
public boolean shouldSelectCell(EventObject arg0) {
return true;
}
public void addCellEditorListener(CellEditorListener celleditorlistener) {
}
public void removeCellEditorListener(CellEditorListener celleditorlistener) {
}
}
/* EOF */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?