OSDN Git Service

meven
[hayashilib/hayashi.git] / src / main / java / jp / co / areaweb / tools / gui / ReadXMLDialog.java
diff --git a/src/main/java/jp/co/areaweb/tools/gui/ReadXMLDialog.java b/src/main/java/jp/co/areaweb/tools/gui/ReadXMLDialog.java
new file mode 100755 (executable)
index 0000000..f925ed8
--- /dev/null
@@ -0,0 +1,173 @@
+package jp.co.areaweb.tools.gui;\r
+import java.awt.*;\r
+import java.io.*;\r
+import javax.swing.*;\r
+\r
+/**\r
+ *     「ReadXML」処理 \r
+ */\r
+@SuppressWarnings("serial")\r
+public class ReadXMLDialog extends JDialog {\r
+       public static final String TITLE = "ReadXML";\r
+       \r
+    // Used for addNotify check.\r
+    boolean fComponentsAdjusted = false;\r
+    \r
+    //{{DECLARE_CONTROLS\r
+    JFrame parentFrame;        // Manager.class\r
+    JPanel argsPanel;          // パラメータ設定パネル       (上部)\r
+    ParameterPanel arg1Panel;          // parameter 1\r
+    \r
+    JPanel buttonPanel;     // ボタン配置パネル        (下部)\r
+    JButton closeButton;      // [クローズ]ボタン\r
+    JButton doButton;      // [実行]ボタン\r
+    TextArea textArea;      // 実行結果を表示するJTextArea    (中央)\r
+    //}}\r
+\r
+    class SymAction implements java.awt.event.ActionListener {\r
+        public void actionPerformed(java.awt.event.ActionEvent event) {\r
+            Object object = event.getSource();\r
+            if (object == closeButton) {\r
+                closeButton_Action(event);\r
+            }\r
+            else if (object == doButton) {\r
+                doButton_Action(event);\r
+            }\r
+        }\r
+    }\r
+\r
+    public ReadXMLDialog(JFrame parentFrame) {\r
+        super(parentFrame, true);   // モーダルダイアログを基盤にする\r
+        this.parentFrame = parentFrame;\r
+                \r
+        // INIT_CONTROLS\r
+        Container container = getContentPane();\r
+        container.setLayout(new BorderLayout());\r
+        setVisible(false);\r
+        setSize(getInsets().left + getInsets().right + 500,getInsets().top + getInsets().bottom + 480);\r
+        setTitle(ReadXMLDialog.TITLE);\r
+        setSize(500,480);\r
+        \r
+        // パラメータ設定パネル\r
+        argsPanel = new JPanel();\r
+        argsPanel.setLayout(new BoxLayout(argsPanel, BoxLayout.Y_AXIS));\r
+        \r
+        arg1Panel = new ParameterPanel("ファイル: ", "build.xml");\r
+        argsPanel.add(arg1Panel);\r
+        \r
+        this.getContentPane().add("North", argsPanel);\r
+        \r
+        // コントロールパネル\r
+        buttonPanel = new JPanel();\r
+\r
+        doButton = new JButton("実行");\r
+        doButton.setToolTipText("処理を実行します.");\r
+        doButton.setEnabled(true);\r
+        buttonPanel.add(doButton);\r
+\r
+        closeButton = new JButton("閉じる");\r
+        closeButton.setToolTipText("処理を終了します.");\r
+        buttonPanel.add(closeButton);\r
+        \r
+        this.getContentPane().add("South", buttonPanel);\r
+        \r
+               // 説明文\r
+        textArea = new TextArea();\r
+        try {\r
+            textArea.append("/**\n");\r
+            textArea.append(" * "+ TITLE +"\n");\r
+            textArea.append(" * 指定したファイルが整形式XML文書であるかどうかを調べる。\n");\r
+            textArea.append(" * exp) java -cp hayashi.jar;xerces.jar jp.co.areaweb.tools.command.ReadXML build.xml\n");\r
+            textArea.append(" */\n\n");\r
+        }\r
+        catch (Exception e) {\r
+            System.out.println(e.toString());\r
+        }\r
+        this.getContentPane().add("Center", textArea);\r
+\r
+        //{{REGISTER_LISTENERS\r
+        SymAction lSymAction = new SymAction();\r
+        closeButton.addActionListener(lSymAction);\r
+        doButton.addActionListener(lSymAction);\r
+        //}}\r
+    }\r
+\r
+    /**\r
+    * Shows or hides the component depending on the boolean flag b.\r
+    * @param b trueのときコンポーネントを表示; その他のとき, componentを隠す.\r
+    * @see java.awt.Component#isVisible\r
+    */\r
+    public void setVisible(boolean b) {\r
+        if(b) {\r
+            setLocation(80, 80);\r
+        }\r
+        super.setVisible(b);\r
+    }\r
+\r
+    public void addNotify()    {\r
+        // Record the size of the window prior to calling parents addNotify.\r
+        Dimension d = getSize();\r
+\r
+        super.addNotify();\r
+\r
+        if (fComponentsAdjusted)\r
+            return;\r
+\r
+        // Adjust components according to the insets\r
+        setSize(getInsets().left + getInsets().right + d.width, getInsets().top + getInsets().bottom + d.height);\r
+        Component components[] = getComponents();\r
+        for (int i = 0; i < components.length; i++)    {\r
+            Point p = components[i].getLocation();\r
+            p.translate(getInsets().left, getInsets().top);\r
+            components[i].setLocation(p);\r
+        }\r
+        fComponentsAdjusted = true;\r
+    }\r
+\r
+    /**\r
+     * [実行]ボタンをクリックしたときの動作\r
+     * @param event\r
+     */\r
+    void doButton_Action(java.awt.event.ActionEvent event) {\r
+        doButton.setEnabled(false);\r
+        \r
+        PrintStream defOut = System.out;\r
+        PrintStream defErr = System.err;\r
+\r
+       ByteArrayOutputStream stdout = new ByteArrayOutputStream();\r
+        try {\r
+               System.setOut(new PrintStream(stdout));\r
+               System.setErr(new PrintStream(stdout));\r
+\r
+               Command command = new Command(jp.co.areaweb.tools.command.ReadXML.class);\r
+               String[] args = new String[1];\r
+               args[0] = arg1Panel.getText();\r
+               command.setArgs(args);\r
+               command.start();                // コマンドを実行\r
+               while (command.isAlive()) {\r
+                       Thread.sleep(1000);\r
+                textArea.append(stdout.toString());\r
+                stdout.reset();\r
+               }\r
+               textArea.append(stdout.toString());\r
+               JOptionPane.showMessageDialog(this, "'"+ TITLE +"'処理を完了しました。", "処理完了", JOptionPane.INFORMATION_MESSAGE);\r
+        }\r
+        catch(Exception e) {\r
+            e.printStackTrace();\r
+            JOptionPane.showMessageDialog(this, e.toString(), "Exception", JOptionPane.ERROR_MESSAGE);\r
+        }\r
+        finally {\r
+               System.setOut(defOut);\r
+               System.setErr(defErr);\r
+            doButton.setEnabled(true);\r
+        }\r
+    }\r
+\r
+    void closeButton_Action(java.awt.event.ActionEvent event) {\r
+        dispose();\r
+    }\r
+    \r
+    void changeSQL_Action(java.awt.event.ActionEvent event) {\r
+        textArea.setText("");\r
+    }\r
+}\r