?? mnqmainframe.~jav
字號:
package com.corba.mnq.main;
import com.corba.mnq.ns.NSUtil;
import com.corba.mnq.ntf.NtfUtil;
import com.corba.mnq.skelstub.DiiRunnable;
import com.corba.mnq.skelstub.DsiImpl;
import com.corba.mnq.skelstub.SequencePushConsumerImpl;
import com.corba.mnq.tool.CorbaFacility;
import com.corba.mnq.tool.EtcProperties;
import com.corba.mnq.tool.GetEtcTool;
import com.corba.mnq.tool.LoggerTool;
import com.corba.mnq.tool.Warehouse;
import com.corba.mnq.tool.idl.Args;
import com.corba.mnq.tool.idl.IdlBase;
import com.corba.mnq.tool.idl.IdlExcept;
import com.corba.mnq.tool.idl.IdlFile;
import com.corba.mnq.tool.idl.IdlInterface;
import com.corba.mnq.tool.idl.IdlModule;
import com.corba.mnq.tool.idl.IdlOperation;
import com.corba.mnq.tool.idl.IdlRoot;
import com.corba.mnq.tool.idl.InArgs;
import com.corba.mnq.tool.idl.InoutArgs;
import com.corba.mnq.tool.idl.OutArgs;
import com.corba.mnq.tool.idl.type.CTArray;
import com.corba.mnq.tool.idl.type.CTBasic;
import com.corba.mnq.tool.idl.type.CTDeclaration;
import com.corba.mnq.tool.idl.type.CTEnum;
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.CTUnion;
import com.corba.mnq.tool.idl.type.TypeBase;
import com.corba.mnq.ui.ArgsCellEditor;
import com.corba.mnq.ui.ArgsTable;
import com.corba.mnq.ui.DependencyUtil;
import com.corba.mnq.ui.MNQMutableTreeNode;
import com.corba.mnq.ui.NodeIconRenderer;
import com.corba.mnq.ui.SpecTreeIconRenderer;
import com.corba.mnq.ui.TabPaneHandler;
import com.corba.mnq.ui.jfc.UcsFileFilter;
import com.corba.mnq.ui.text.HighlightTextPane;
import com.corba.mnq.ui.text.idl.IdlTextEditor;
import com.corba.mnq.ui.text.java.JavaTextEditor;
import com.corba.mnq.xls.IcsWriter;
import com.corba.mnq.xls.MatchUtil;
import com.corba.mnq.xls.OpFlowNode;
import com.corba.mnq.xls.ReplaceUtil;
import com.corba.mnq.xls.RunOpFlow;
import com.corba.mnq.xls.XlsUtil;
import com.sun.tools.javac.Main;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTree;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.plaf.BorderUIResource;
import javax.swing.table.DefaultTableModel;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.Vector;
import java.util.logging.Logger;
import net.infonode.tabbedpanel.Tab;
import net.infonode.tabbedpanel.TabbedPanel;
import net.infonode.tabbedpanel.theme.ShapedGradientTheme;
import net.infonode.tabbedpanel.theme.TabbedPanelTitledTabTheme;
import net.infonode.tabbedpanel.titledtab.TitledTab;
import net.infonode.tabbedpanel.titledtab.TitledTabProperties;
import org.jacorb.orb.util.PrintIOR;
import org.omg.CORBA.Any;
import org.omg.PortableServer.Servant;
import org.omg.PortableServer.POAPackage.ObjectAlreadyActive;
import org.omg.PortableServer.POAPackage.ObjectNotActive;
public class MNQmainFrame extends JFrame implements MouseListener, ListSelectionListener,
TreeSelectionListener, ActionListener, WindowListener {
private final class ActionListenerSaveTextArea implements ActionListener {
public void actionPerformed(ActionEvent e) {
String title = "default";
String res = "";
if (tabbedOutput.getSelectedTab().getContentComponent() == commonScroll) {
title = "Common_Output";
res = commonPane.getText();
} else if (tabbedOutput.getSelectedTab().getContentComponent() == clientScroll) {
title = "Client_Output";
res = clientPane.getText();
} else if (tabbedOutput.getSelectedTab().getContentComponent() == serverScroll) {
title = "Server_Output";
res = serverPane.getText();
} else if (tabbedOutput.getSelectedTab().getContentComponent() == seEditorScroll) {
// ...
setCursor(new Cursor(Cursor.WAIT_CURSOR));
File src = new File(CorbaMNQ.projectDir + File.separator + "dsi" + File.separator
+ "src" + File.separator + onSelected.getClassName() + ".java");
// String content = seEditorPane.getText();
String content = seEditor.getText();
try {
if (!src.exists()) {
try {
src.createNewFile();
} catch (IOException ex) {
new File(CorbaMNQ.projectDir + File.separator + "dsi" + File.separator
+ "src").mkdirs();
}
}
// write the content to file
PrintStream ps = new PrintStream(new FileOutputStream(src));
ps.print(content);
ps.close();
String[] args = new String[] { "-d",
CorbaMNQ.projectDir + File.separator + "dsi", "-source", "1.4",
"-target", "1.4", src.getAbsolutePath() };
// return compiled status code
int status = javac.compile(args);
if (status != 0) {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
JOptionPane
.showMessageDialog(
MNQmainFrame.frame,
"Wrong with server extentison compiling : detailed, pls. see console output or log",
"operation tip", 2);
return;
}
} catch (Exception e1) {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
e1.printStackTrace();
JOptionPane.showMessageDialog(MNQmainFrame.frame,
"Wrong with server extentison saving : \n" + e1.getMessage(),
"operation tip", 2);
return;
}
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
JOptionPane.showMessageDialog(MNQmainFrame.frame, src.getName()
+ " has been successfully saved and compiled!", "operation tip", 2);
return;
} else if (tabbedOutput.getSelectedTab().getContentComponent() == notiPane) {
title = "Notification_Output";
// res = ;
int column = notiModel.getColumnCount();
int row = notiModel.getRowCount();
// writer headers to file
for (int x = 0; x < notiHeader.length; x++) {
res += "\"" + notiHeader[x] + "\"\t";
}
res += "\n";
// write data to file
for (int x = 0; x < row; x++) {
for (int y = 0; y < column; y++) {
String value = (String) notiModel.getValueAt(x, y);
if (value == null) {
value = "";
}
res += "\"" + value.replaceAll("\n", "<nl>") + "\"\t";
}
res += "\n";
}
}
File dir = new File(CorbaMNQ.projectDir + File.separator + "log");
File file = new File(CorbaMNQ.projectDir + File.separator + "log" + File.separator
+ title + ".log");
JFileChooser dlg = new JFileChooser(dir);
dlg.setSelectedFile(file);
dlg.setDialogTitle("Save " + title + " as Text...");
if (dlg.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION) {
String filename = dlg.getSelectedFile().getAbsolutePath();
try {
FileWriter fout = new FileWriter(filename);
fout.write(res);
fout.close();
} catch (Exception e1) {
LoggerTool.logStackTrace(e1, MNQmainFrame.LOG);
}
}
}
}
/**
* Constant Table Model. Provides all features of
* DefaultTableModel, but disables the edit possibility for all
* cells.
*/
class ConstantTableModel extends DefaultTableModel {
private Object lock = new Object();
/**
* Overridden constuctor, calling superclass' constructor
*
* @param header
* @param i
*/
public ConstantTableModel(String[] header, int i) {
super(header, i);
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.DefaultTableModel#getValueAt(int,
* int)
*/
public Object getValueAt(int row, int column) {
Object o = null;
synchronized (lock) {
if (this.getRowCount() > 0) {
o = super.getValueAt(row, column);
}
}
return o;
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.DefaultTableModel#isCellEditable(int,
* int)
*/
public boolean isCellEditable(int row, int column) {
// Return false for all cells
return false;
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.DefaultTableModel#removeRow(int)
*/
public void removeRow(int row) {
synchronized (lock) {
super.removeRow(row);
}
}
}
public static String CASE_ROOT_STRING = "default.opf";
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -