Example usage for javax.swing DefaultListModel elements

List of usage examples for javax.swing DefaultListModel elements

Introduction

In this page you can find the example usage for javax.swing DefaultListModel elements.

Prototype

public Enumeration<E> elements() 

Source Link

Document

Returns an enumeration of the components of this list.

Usage

From source file:com.iisigroup.ris.WebFileScanUtilBrowserUI.java

private void initGUI() {
    final SwingActionUtil swingUtil = (SwingActionUtil) SwingActionUtil.newInstance(this);
    try {/*from  ww  w.  j a v a2 s.com*/
        BorderLayout thisLayout = new BorderLayout();
        getContentPane().setLayout(thisLayout);
        this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        this.setTitle("browser source code");
        {
            informationMenu = new JPopupMenu();
            setComponentPopupMenu(this, informationMenu);
        }
        {
            ListModel openFileListModel = new DefaultListModel();
            openFileList = new JList();
            openFileList.setModel(openFileListModel);
            getContentPane().add(openFileList, BorderLayout.NORTH);
            openFileList.setPreferredSize(new java.awt.Dimension(663, 281));
            openFileList.addListSelectionListener(new ListSelectionListener() {
                public void valueChanged(ListSelectionEvent evt) {
                    swingUtil.invokeAction("openFileList.valueChanged", evt);
                }
            });
            openFileList.addMouseMotionListener(new MouseMotionAdapter() {
                public void mouseMoved(MouseEvent evt) {
                    swingUtil.invokeAction("openFileList.mouseMoved", evt);
                }
            });
            openFileList.addKeyListener(new KeyAdapter() {
                public void keyPressed(KeyEvent evt) {
                    swingUtil.invokeAction("openFileList.keyPressed", evt);
                }
            });
        }
        {
            jPanel1 = new JPanel();
            GroupLayout jPanel1Layout = new GroupLayout((JComponent) jPanel1);
            jPanel1.setLayout(jPanel1Layout);
            getContentPane().add(jPanel1, BorderLayout.SOUTH);
            jPanel1.setPreferredSize(new java.awt.Dimension(478, 35));
            {
                openSelected = new JButton();
                openSelected.setText("open all");
                openSelected.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {
                        swingUtil.invokeAction("openSelected.actionPerformed", evt);
                    }
                });
            }
            jPanel1Layout.setHorizontalGroup(jPanel1Layout.createSequentialGroup().addContainerGap(178, 178)
                    .addComponent(openSelected, GroupLayout.PREFERRED_SIZE, 126, GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(174, Short.MAX_VALUE));
            jPanel1Layout.setVerticalGroup(jPanel1Layout.createSequentialGroup().addGap(7)
                    .addComponent(openSelected, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
                    .addGap(0, 6, Short.MAX_VALUE));
        }
        {
            informationMenu = new JPopupMenu();
        }

        this.setSize(486, 350);
        this.setLocationRelativeTo(null);

        //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        // ?tooltip
        //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        int initialDelay = ToolTipManager.sharedInstance().getInitialDelay();
        ToolTipManager.sharedInstance().setInitialDelay(0);
        //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        // ?tooltip
        //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

        swingUtil.addAction("openFileList.mouseClicked", new Action() {
            public void action(EventObject evt) throws Exception {
                DefaultListModel model = (DefaultListModel) openFileList.getModel();
                int pos = openFileList.getLeadSelectionIndex();
                if (pos == -1) {
                    return;
                }
                setOpenFileListToolTip();
                MouseEvent eeev = (MouseEvent) evt;
                if (eeev.getClickCount() != 2) {
                    return;
                }
                MFile file = (MFile) model.elementAt(pos);
                openSource(file.file);
            }
        });
        final JListUtil jlistUtil = JListUtil.newInstance(openFileList);
        swingUtil.addAction("openFileList.keyPressed", new Action() {
            public void action(EventObject evt) throws Exception {
                jlistUtil.defaultJListKeyPressed((KeyEvent) evt);
                setOpenFileListToolTip();
            }
        });
        swingUtil.addAction("openSelected.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                DefaultListModel model = (DefaultListModel) openFileList.getModel();
                for (Enumeration<?> enu = model.elements(); enu.hasMoreElements();) {
                    MFile file = (MFile) enu.nextElement();
                    openSource(file.file);
                }
            }
        });
        swingUtil.addAction("openFileList.mouseMoved", new Action() {
            public void action(EventObject evt) throws Exception {
                setOpenFileListToolTip();
            }
        });
        swingUtil.addAction("openFileList.valueChanged", new Action() {
            public void action(EventObject evt) throws Exception {
                System.out.println(evt);
                setOpenFileListToolTip();
            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:gtu.zcognos.DimensionUI.java

private void initGUI() {
    try {/*w  w w .  jav  a 2  s .co  m*/

        final SwingActionUtil swingUtil = (SwingActionUtil) SwingActionUtil.newInstance(this);
        {
            GroupLayout thisLayout = new GroupLayout((JComponent) getContentPane());
            getContentPane().setLayout(thisLayout);
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            {
                projectId = new JTextField();
            }
            {
                jLabel1 = new JLabel();
                jLabel1.setText("PROJECT_ID");
            }
            {
                create = new JButton();
                create.setText("create");
                create.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {
                        swingUtil.invokeAction("create.actionPerformed", evt);
                    }
                });
            }
            {
                reportId = new JTextField();
            }
            {
                jLabel8 = new JLabel();
                jLabel8.setText("report id");
            }
            {
                addDimensionFromDb = new JButton();
                addDimensionFromDb.setText("add from db");
                addDimensionFromDb.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {
                        swingUtil.invokeAction("addFromDb.actionPerformed", evt);
                    }
                });
            }
            {
                dataSourceTable = new JTextField();
                dataSourceTable.setText("rscdpg0901");
            }
            {
                jLabel7 = new JLabel();
                jLabel7.setText("data source table");
            }
            {
                addDimension = new JButton();
                addDimension.setText("add");
                addDimension.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {
                        swingUtil.invokeAction("add.actionPerformed", evt);
                    }
                });
            }
            {
                dimensionName = new JTextField();
            }
            {
                jLabel6 = new JLabel();
                jLabel6.setText("dimension chinese name");
            }
            {
                jLabel5 = new JLabel();
                jLabel5.setText("rscdzzzz id index");
            }
            {
                String[] idx = new String[20];
                for (int ii = 0; ii < idx.length; ii++) {
                    idx[ii] = "id" + (ii + 1);
                }
                ComboBoxModel rscdzzzzIdIndexModel = new DefaultComboBoxModel(idx);
                rscdzzzzIdIndex = new JComboBox();
                rscdzzzzIdIndex.setModel(rscdzzzzIdIndexModel);
            }
            {
                jLabel3 = new JLabel();
                jLabel3.setText("Dimension");
            }
            {
                jScrollPane1 = new JScrollPane();
                {
                    DefaultListModel dimensionListModel = new DefaultListModel();
                    dimensionList = new JList();
                    jScrollPane1.setViewportView(dimensionList);
                    dimensionList.setModel(dimensionListModel);
                    dimensionList.addKeyListener(new KeyAdapter() {
                        public void keyPressed(KeyEvent evt) {
                            JListUtil.newInstance(dimensionList).defaultJListKeyPressed(evt);
                        }
                    });
                }
            }
            {
                exportDir = new JButton();
                exportDir.setText("export dir");
                exportDir.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {
                        swingUtil.invokeAction("exportDir.actionPerformed", evt);
                    }
                });
            }
            {
                category = new JTextField();
            }
            {
                jLabel4 = new JLabel();
                jLabel4.setText("category");
            }
            {
                tableName = new JTextField();
            }
            {
                jLabel2 = new JLabel();
                jLabel2.setText("merge table name");
            }
            thisLayout
                    .setHorizontalGroup(thisLayout.createSequentialGroup().addContainerGap(12, 12)
                            .addGroup(thisLayout.createParallelGroup()
                                    .addComponent(jLabel3, GroupLayout.Alignment.LEADING,
                                            GroupLayout.PREFERRED_SIZE, 196, GroupLayout.PREFERRED_SIZE)
                                    .addGroup(thisLayout.createSequentialGroup().addGap(19).addGroup(thisLayout
                                            .createParallelGroup().addGroup(thisLayout.createSequentialGroup()
                                                    .addComponent(exportDir, GroupLayout.PREFERRED_SIZE, 119,
                                                            GroupLayout.PREFERRED_SIZE)
                                                    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                                                    .addComponent(
                                                            addDimension, GroupLayout.PREFERRED_SIZE, 119,
                                                            GroupLayout.PREFERRED_SIZE)
                                                    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                                                    .addGroup(thisLayout.createParallelGroup().addComponent(
                                                            addDimensionFromDb, GroupLayout.Alignment.LEADING,
                                                            GroupLayout.PREFERRED_SIZE, 191,
                                                            GroupLayout.PREFERRED_SIZE)
                                                            .addGroup(thisLayout.createSequentialGroup().addGap(
                                                                    88)
                                                                    .addComponent(create,
                                                                            GroupLayout.PREFERRED_SIZE, 119,
                                                                            GroupLayout.PREFERRED_SIZE))))
                                            .addGroup(thisLayout.createSequentialGroup().addGroup(thisLayout
                                                    .createParallelGroup()
                                                    .addComponent(jLabel6, GroupLayout.Alignment.LEADING,
                                                            GroupLayout.PREFERRED_SIZE, 196,
                                                            GroupLayout.PREFERRED_SIZE)
                                                    .addComponent(jLabel5, GroupLayout.Alignment.LEADING,
                                                            GroupLayout.PREFERRED_SIZE, 196,
                                                            GroupLayout.PREFERRED_SIZE)
                                                    .addComponent(jLabel4, GroupLayout.Alignment.LEADING,
                                                            GroupLayout.PREFERRED_SIZE, 196,
                                                            GroupLayout.PREFERRED_SIZE)
                                                    .addComponent(jLabel8, GroupLayout.Alignment.LEADING,
                                                            GroupLayout.PREFERRED_SIZE, 196,
                                                            GroupLayout.PREFERRED_SIZE)
                                                    .addComponent(jLabel2, GroupLayout.Alignment.LEADING,
                                                            GroupLayout.PREFERRED_SIZE, 196,
                                                            GroupLayout.PREFERRED_SIZE)
                                                    .addComponent(jLabel7, GroupLayout.Alignment.LEADING,
                                                            GroupLayout.PREFERRED_SIZE, 196,
                                                            GroupLayout.PREFERRED_SIZE)
                                                    .addComponent(jLabel1, GroupLayout.Alignment.LEADING,
                                                            GroupLayout.PREFERRED_SIZE, 196,
                                                            GroupLayout.PREFERRED_SIZE))
                                                    .addGap(39)
                                                    .addGroup(thisLayout.createParallelGroup()
                                                            .addComponent(dimensionName,
                                                                    GroupLayout.Alignment.LEADING,
                                                                    GroupLayout.PREFERRED_SIZE, 204,
                                                                    GroupLayout.PREFERRED_SIZE)
                                                            .addComponent(rscdzzzzIdIndex,
                                                                    GroupLayout.Alignment.LEADING,
                                                                    GroupLayout.PREFERRED_SIZE, 204,
                                                                    GroupLayout.PREFERRED_SIZE)
                                                            .addComponent(category,
                                                                    GroupLayout.Alignment.LEADING,
                                                                    GroupLayout.PREFERRED_SIZE, 204,
                                                                    GroupLayout.PREFERRED_SIZE)
                                                            .addComponent(reportId,
                                                                    GroupLayout.Alignment.LEADING,
                                                                    GroupLayout.PREFERRED_SIZE, 204,
                                                                    GroupLayout.PREFERRED_SIZE)
                                                            .addComponent(tableName,
                                                                    GroupLayout.Alignment.LEADING,
                                                                    GroupLayout.PREFERRED_SIZE, 204,
                                                                    GroupLayout.PREFERRED_SIZE)
                                                            .addComponent(dataSourceTable,
                                                                    GroupLayout.Alignment.LEADING,
                                                                    GroupLayout.PREFERRED_SIZE, 204,
                                                                    GroupLayout.PREFERRED_SIZE)
                                                            .addComponent(projectId,
                                                                    GroupLayout.Alignment.LEADING,
                                                                    GroupLayout.PREFERRED_SIZE, 204,
                                                                    GroupLayout.PREFERRED_SIZE)))
                                            .addComponent(jScrollPane1, GroupLayout.Alignment.LEADING,
                                                    GroupLayout.PREFERRED_SIZE, 436,
                                                    GroupLayout.PREFERRED_SIZE))))
                            .addContainerGap(11, 11));
            thisLayout.setVerticalGroup(thisLayout.createSequentialGroup().addContainerGap(12, 12)
                    .addGroup(thisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                            .addComponent(projectId, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel1, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(thisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                            .addComponent(dataSourceTable, GroupLayout.Alignment.BASELINE,
                                    GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                    GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel7, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(jLabel3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                            GroupLayout.PREFERRED_SIZE)
                    .addGroup(thisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                            .addComponent(tableName, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel2, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(thisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                            .addComponent(reportId, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel8, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(thisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                            .addComponent(category, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel4, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(thisLayout.createParallelGroup()
                            .addComponent(jLabel5, GroupLayout.Alignment.LEADING, GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                            .addComponent(rscdzzzzIdIndex, GroupLayout.Alignment.LEADING,
                                    GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                    GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(thisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                            .addComponent(dimensionName, GroupLayout.Alignment.BASELINE,
                                    GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                    GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel6, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(thisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                            .addComponent(addDimension, GroupLayout.Alignment.BASELINE,
                                    GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                    GroupLayout.PREFERRED_SIZE)
                            .addComponent(exportDir, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                            .addComponent(addDimensionFromDb, GroupLayout.Alignment.BASELINE,
                                    GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                                    GroupLayout.PREFERRED_SIZE))
                    .addGap(11)
                    .addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 269, GroupLayout.PREFERRED_SIZE)
                    .addGap(12).addComponent(create, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
                            GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(9, 9));
        }
        this.setSize(513, 632);

        swingUtil.addAction("exportDir.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                File file = JFileChooserUtil.newInstance().selectDirectoryOnly().showOpenDialog()
                        .getApproveSelectedFile();
                if (file != null) {
                    baseDir = file;
                }
            }
        });

        swingUtil.addAction("addFromDb.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                String project = projectId.getText();
                Validate.notEmpty(project, "projectId is null");
                Validate.notEmpty(dataSourceTable.getText(), "dataSourceTable is null");

                DefaultListModel model = (DefaultListModel) dimensionList.getModel();
                for (Dimension_ ddd : InformixDbConn.queryGetDaminsion(dataSourceTable.getText(), project)) {
                    model.addElement(ddd);
                }
            }
        });

        swingUtil.addAction("add.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                // Validate.notEmpty(tableName.getText(),
                // "tableName is null");
                Validate.notEmpty(category.getText(), "category is null");
                Validate.notEmpty(dimensionName.getText(), "dimensionName is null");
                Validate.notEmpty(dataSourceTable.getText(), "dataSourceTable is null");
                // Validate.notEmpty(reportId.getText(),
                // "reportId is null");

                String report_id = StringUtils.defaultString(reportId.getText(), projectId.getText());

                String tName = tableName.getText();
                if (StringUtils.isEmpty(tName)) {
                    tName = randomTableName();
                }

                DefaultListModel model = (DefaultListModel) dimensionList.getModel();
                model.addElement(new Dimension_(dataSourceTable.getText(), tName, category.getText(),
                        (String) rscdzzzzIdIndex.getSelectedItem(), dimensionName.getText(), report_id));
            }
        });

        swingUtil.addAction("create.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {

                String project = projectId.getText();
                Validate.notEmpty(project, "projectId is null");
                Validate.notNull(baseDir, "exportDir is null");

                File destDir = new File(baseDir, project);

                Map<String, Object> map = new HashMap<String, Object>();

                List<Map<String, String>> llist = new ArrayList<Map<String, String>>();

                int idx = 2;
                int categoryId = 1;
                DefaultListModel model = (DefaultListModel) dimensionList.getModel();
                for (Enumeration<?> enu = model.elements(); enu.hasMoreElements();) {
                    Dimension_ di = (Dimension_) enu.nextElement();

                    Map mmm = new HashMap();
                    mmm.put("rscdpg0901", di.dataSourceTable);//
                    mmm.put("rscdpg0901a", di.tableName);//
                    mmm.put("rscdpg0901a_category", di.category);//
                    mmm.put("rscdpg0901a_report_id", di.reportId);//
                    mmm.put("rscdzzzz_id", di.idIndex);//
                    mmm.put("rscdpg0901a_dname", di.dimensionName);//
                    llist.add(mmm);
                }

                map.put("PROJECT_ID", project);
                map.put("RSCDPG0901", llist);
                map.put("rscdpg0901", dataSourceTable.getText());

                ConfigCopy.getInstance().applyBaseDir(baseDir).applyProjectId(project).execute();

                Dimension.getInstance()//
                        .applyDestDir(destDir.getAbsolutePath())//
                        .applyParameter(map)//
                        .execute();

                JOptionPaneUtil.newInstance().iconInformationMessage()
                        .showMessageDialog(project + " create completed!!\r\n dir : " //
                                + destDir.getAbsolutePath(), project);

                Desktop.getDesktop().open(destDir);
            }
        });

    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:gtu._work.ui.JarFinderUI.java

private void initGUI() {
    try {//from  w w w .  j  ava  2  s  .  c  o m

        BorderLayout thisLayout = new BorderLayout();
        getContentPane().setLayout(thisLayout);
        this.setTitle("Jar finder");
        {
            jTabbedPane1 = new JTabbedPane();
            getContentPane().add(jTabbedPane1, BorderLayout.CENTER);
            {
                jPanel1 = new JPanel();
                BorderLayout jPanel1Layout = new BorderLayout();
                jPanel1.setLayout(jPanel1Layout);
                jTabbedPane1.addTab("src dir", null, jPanel1, null);
                {
                    openDir = new JButton();
                    jPanel1.add(openDir, BorderLayout.NORTH);
                    openDir.setText("open dir");
                    openDir.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            jButton1ActionPerformed(evt);
                        }
                    });
                }
                {
                    jScrollPane1 = new JScrollPane();
                    jPanel1.add(jScrollPane1, BorderLayout.CENTER);
                    jScrollPane1.setPreferredSize(new java.awt.Dimension(406, 255));
                    {
                        DefaultListModel jList1Model = new DefaultListModel();
                        try {
                            prop.load(new FileInputStream(CONFIG_FILE));
                            for (Enumeration<?> enu = prop.keys(); enu.hasMoreElements();) {
                                File val = new File((String) enu.nextElement());
                                jList1Model.addElement(val);
                            }
                        } catch (Exception ex) {
                            JCommonUtil.handleException("??:" + CONFIG_FILE, ex);
                        }
                        jarFileDirs = new JList();
                        jScrollPane1.setViewportView(jarFileDirs);
                        jarFileDirs.setModel(jList1Model);
                        jarFileDirs.setPreferredSize(new java.awt.Dimension(406, 221));
                        jarFileDirs.addMouseListener(new MouseAdapter() {
                            public void mouseClicked(MouseEvent evt) {
                                if (!JListUtil.newInstance(jarFileDirs).isCorrectMouseClick(evt)) {
                                    return;
                                }
                                File file = (File) JListUtil.getLeadSelectionObject(jarFileDirs);
                                try {
                                    Desktop.getDesktop().open(file);
                                } catch (IOException e) {
                                    JCommonUtil.handleException(e);
                                }
                            }
                        });
                        jarFileDirs.addKeyListener(new KeyAdapter() {
                            public void keyPressed(KeyEvent evt) {
                                JListUtil.newInstance(jarFileDirs).defaultJListKeyPressed(evt);
                            }
                        });
                    }
                }
            }
            {
                jPanel2 = new JPanel();
                BorderLayout jPanel2Layout = new BorderLayout();
                jPanel2.setLayout(jPanel2Layout);
                jTabbedPane1.addTab("result", null, jPanel2, null);
                {
                    jPanel3 = new JPanel();
                    BorderLayout jPanel3Layout = new BorderLayout();
                    jPanel3.setLayout(jPanel3Layout);
                    jPanel2.add(jPanel3, BorderLayout.NORTH);
                    jPanel3.setPreferredSize(new java.awt.Dimension(406, 26));
                    {
                        searchText = new JTextField();
                        jPanel3.add(searchText, BorderLayout.WEST);
                        searchText.setPreferredSize(new java.awt.Dimension(326, 26));
                    }
                    {
                        search = new JButton();
                        jPanel3.add(search, BorderLayout.CENTER);
                        search.setText("search");
                        search.addActionListener(new ActionListener() {
                            public void actionPerformed(ActionEvent evt) {
                                jButton2ActionPerformed(evt);
                            }
                        });
                    }
                }
                {
                    jScrollPane2 = new JScrollPane();
                    jPanel2.add(jScrollPane2, BorderLayout.CENTER);
                    jScrollPane2.setPreferredSize(new java.awt.Dimension(406, 231));
                    {
                        ListModel searchResultModel = new DefaultListModel();
                        searchResult = new JList();
                        jScrollPane2.setViewportView(searchResult);
                        searchResult.setModel(searchResultModel);
                        searchResult.addMouseListener(new MouseAdapter() {
                            public void mouseClicked(MouseEvent evt) {
                                jList1MouseClicked(evt);
                            }
                        });
                        searchResult.addKeyListener(new KeyAdapter() {
                            public void keyPressed(KeyEvent evt) {
                                JListUtil.newInstance(searchResult).defaultJListKeyPressed(evt);
                            }
                        });
                    }
                }
                {
                    resetFinder = new JButton();
                    jPanel2.add(resetFinder, BorderLayout.SOUTH);
                    resetFinder.setText("reset finder");
                    resetFinder.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            jarfinder.clear();
                        }
                    });
                }
            }
            {
                jPanel4 = new JPanel();
                BorderLayout jPanel4Layout = new BorderLayout();
                jPanel4.setLayout(jPanel4Layout);
                jTabbedPane1.addTab("copy to", null, jPanel4, null);
                {
                    copyToBtn = new JButton();
                    jPanel4.add(copyToBtn, BorderLayout.NORTH);
                    copyToBtn.setText("copy to");
                    copyToBtn.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            File file = JFileChooserUtil.newInstance().selectDirectoryOnly().showOpenDialog()
                                    .getApproveSelectedFile();
                            if (file == null) {
                                JOptionPaneUtil.newInstance().iconErrorMessage()
                                        .showMessageDialog("copy to dir undefined!", getTitle());
                                return;
                            } else {
                                copyToFile = file;
                            }
                        }
                    });
                }
                {
                    jScrollPane3 = new JScrollPane();
                    jPanel4.add(jScrollPane3, BorderLayout.CENTER);
                    {
                        DefaultListModel copyToListModel = new DefaultListModel();
                        copyToList = new JList();
                        jScrollPane3.setViewportView(copyToList);
                        copyToList.setModel(copyToListModel);
                        {
                            panel = new JPanel();
                            jTabbedPane1.addTab("config", null, panel, null);
                            panel.setLayout(new FormLayout(
                                    new ColumnSpec[] { FormFactory.RELATED_GAP_COLSPEC,
                                            FormFactory.DEFAULT_COLSPEC, FormFactory.RELATED_GAP_COLSPEC,
                                            ColumnSpec.decode("default:grow"), },
                                    new RowSpec[] { FormFactory.RELATED_GAP_ROWSPEC,
                                            FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC,
                                            FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC,
                                            FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC,
                                            FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC,
                                            FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC,
                                            FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC,
                                            FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC,
                                            FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC,
                                            FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC,
                                            FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC,
                                            FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC,
                                            FormFactory.DEFAULT_ROWSPEC, }));
                            {
                                lblNewLabel = new JLabel("JD Gui");
                                panel.add(lblNewLabel, "2, 2, right, default");
                            }
                            {
                                jdGuiText = new JTextField();
                                JCommonUtil.jTextFieldSetFilePathMouseEvent(jdGuiText, false);
                                panel.add(jdGuiText, "4, 2, fill, default");
                                jdGuiText.setColumns(10);
                            }
                            {
                                saveConfigBtn = new JButton("");
                                saveConfigBtn.addActionListener(new ActionListener() {
                                    public void actionPerformed(ActionEvent e) {
                                        try {
                                            configBean.reflectSetConfig(JarFinderUI.this);
                                            configBean.store();
                                            JCommonUtil._jOptionPane_showMessageDialog_info("?!");
                                        } catch (Exception ex) {
                                            JCommonUtil.handleException(ex);
                                        }
                                    }
                                });
                                panel.add(saveConfigBtn, "2, 24");
                            }
                        }
                        copyToList.addMouseListener(new MouseAdapter() {
                            public void mouseClicked(MouseEvent evt) {
                                // copyToFile
                                if (evt.getClickCount() != 2) {
                                    return;
                                }
                                if (copyToList.getLeadSelectionIndex() == -1) {
                                    return;
                                }
                                if (copyToFile == null) {
                                    JOptionPaneUtil.newInstance().iconErrorMessage()
                                            .showMessageDialog("copy to dir undefined!", getTitle());
                                    return;
                                }
                                DefaultListModel model = (DefaultListModel) copyToList.getModel();
                                Object val = model.getElementAt(copyToList.getLeadSelectionIndex());
                                StringBuilder sb = new StringBuilder();
                                sb.append("?\n");
                                sb.append("file : " + val + "\n");
                                sb.append("copy to dir : " + copyToFile + "\n");
                                ComfirmDialogResult result = JOptionPaneUtil.newInstance().confirmButtonYesNo()
                                        .showConfirmDialog(sb, getTitle());
                                File srcFile = new File((String) val);
                                if (!srcFile.exists()) {
                                    JOptionPaneUtil.newInstance().iconErrorMessage()
                                            .showMessageDialog(srcFile + "  not found!", getTitle());
                                    return;
                                }
                                File copyDestFile = new File(copyToFile, srcFile.getName());
                                switch (result) {
                                case YES_OK_OPTION:
                                    System.out.println("yes..");
                                    try {
                                        FileUtil.copyFile(srcFile, copyDestFile);
                                    } catch (IOException e) {
                                        JCommonUtil.handleException(e.toString(), e);
                                    }
                                    if (srcFile != null && //
                                    copyDestFile != null && //
                                    srcFile.length() == copyDestFile.length()) {
                                        JOptionPaneUtil.newInstance().iconInformationMessage()
                                                .showMessageDialog("success!\n" + copyDestFile, getTitle());
                                    } else {
                                        JOptionPaneUtil.newInstance().iconErrorMessage()
                                                .showMessageDialog("failed!\n" + copyDestFile, getTitle());
                                    }
                                    break;
                                case NO_OPTION:
                                    System.out.println("no..");
                                    break;
                                }
                            }
                        });
                    }
                }
            }

            jTabbedPane1.addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent evt) {
                    copyToList.setModel(searchResult.getModel());
                }
            });
        }
        this.setSize(562, 407);

        JCommonUtil.frameCloseDo(this, new WindowAdapter() {
            public void windowClosing(WindowEvent paramWindowEvent) {
                if (CONFIG_FILE.exists()) {
                    DefaultListModel model = (DefaultListModel) jarFileDirs.getModel();
                    for (Enumeration<?> enu = model.elements(); enu.hasMoreElements();) {
                        Object obj = enu.nextElement();
                        prop.setProperty(((File) obj).getAbsolutePath(), "");
                    }
                    try {
                        prop.store(new FileOutputStream(CONFIG_FILE), "testtesttesttest");
                    } catch (Exception e) {
                        JCommonUtil.handleException("", e);
                    }
                }
                setVisible(false);
                dispose();
            }
        });

        {
            configBean.reflectInit(this);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:gtu._work.ui.ExecuteOpener.java

private void initGUI() {
    final SwingActionUtil swingUtil = SwingActionUtil.newInstance(this);
    ToolTipManager.sharedInstance().setInitialDelay(0);
    try {//from  www .j  a  va2 s  .  co  m
        {
            this.setTitle("execute browser");
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            this.setPreferredSize(new java.awt.Dimension(870, 551));
            this.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent evt) {
                    swingUtil.invokeAction("frame.mouseClicked", evt);
                }
            });
        }
        {
            jTabbedPane1 = new JTabbedPane();
            getContentPane().add(jTabbedPane1);
            jTabbedPane1.setPreferredSize(new java.awt.Dimension(384, 265));
            jTabbedPane1.addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent evt) {
                    swingUtil.invokeAction("jTabbedPane1.stateChanged", evt);
                }
            });
            jTabbedPane1.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent evt) {
                    swingUtil.invokeAction("jTabbedPane1.mouseClicked", evt);
                }
            });
            {
                jPanel1 = new JPanel();
                BorderLayout jPanel1Layout = new BorderLayout();
                jPanel1.setLayout(jPanel1Layout);
                jTabbedPane1.addTab("file list", null, jPanel1, null);
                {
                    jPanel4 = new JPanel();
                    BorderLayout jPanel4Layout = new BorderLayout();
                    jPanel4.setLayout(jPanel4Layout);
                    jPanel1.add(jPanel4, BorderLayout.NORTH);
                    jPanel4.setPreferredSize(new java.awt.Dimension(508, 81));
                    {
                        jScrollPane1 = new JScrollPane();
                        jPanel4.add(jScrollPane1, BorderLayout.CENTER);
                        {
                            exeArea = new JTextArea();
                            jScrollPane1.setViewportView(exeArea);
                        }
                    }
                    {
                        jPanel5 = new JPanel();
                        BorderLayout jPanel5Layout = new BorderLayout();
                        jPanel5.setLayout(jPanel5Layout);
                        jPanel4.add(jPanel5, BorderLayout.EAST);
                        jPanel5.setPreferredSize(new java.awt.Dimension(202, 81));
                        {
                            addArea = new JButton();
                            jPanel5.add(addArea, BorderLayout.CENTER);
                            addArea.setText("addArea");
                            addArea.setPreferredSize(new java.awt.Dimension(58, 30));
                            addArea.addActionListener(new ActionListener() {
                                public void actionPerformed(ActionEvent evt) {
                                    swingUtil.invokeAction("addArea.actionPerformed", evt);
                                }
                            });
                        }
                    }
                    {
                        queryText = new JTextField();
                        jPanel4.add(queryText, BorderLayout.NORTH);
                        queryText.getDocument()
                                .addDocumentListener(JCommonUtil.getDocumentListener(new HandleDocumentEvent() {
                                    public void process(DocumentEvent event) {
                                        try {
                                            String query = JCommonUtil.getDocumentText(event);
                                            Pattern ptn = Pattern.compile(query);
                                            DefaultListModel model = new DefaultListModel();
                                            for (Object key : prop.keySet()) {
                                                String val = key.toString();
                                                if (val.contains(query)) {
                                                    model.addElement(key);
                                                    continue;
                                                }
                                                if (ptn.matcher(val).find()) {
                                                    model.addElement(key);
                                                    continue;
                                                }
                                            }
                                            execList.setModel(model);
                                        } catch (Exception ex) {
                                        }
                                    }
                                }));
                    }
                }
                {
                    jPanel3 = new JPanel();
                    jPanel1.add(jPanel3, BorderLayout.CENTER);
                    BorderLayout jPanel3Layout = new BorderLayout();
                    jPanel3.setLayout(jPanel3Layout);
                    jPanel3.setPreferredSize(new java.awt.Dimension(480, 220));
                    {
                        jScrollPane2 = new JScrollPane();
                        jPanel3.add(jScrollPane2, BorderLayout.CENTER);
                        {
                            DefaultListModel execListModel = new DefaultListModel();
                            for (Object obj : prop.keySet()) {
                                execListModel.addElement((String) obj);
                            }
                            execList = new JList();
                            jScrollPane2.setViewportView(execList);
                            execList.setModel(execListModel);
                            execList.addKeyListener(new KeyAdapter() {
                                public void keyPressed(KeyEvent evt) {
                                    swingUtil.invokeAction("execList.keyPressed", evt);
                                }
                            });
                            execList.addListSelectionListener(new ListSelectionListener() {
                                public void valueChanged(ListSelectionEvent evt) {
                                    swingUtil.invokeAction("execList.valueChanged", evt);
                                }
                            });
                            execList.addMouseListener(new MouseAdapter() {
                                public void mouseClicked(MouseEvent evt) {
                                    swingUtil.invokeAction("execList.mouseClicked", evt);
                                }
                            });
                        }
                    }
                }
                {
                    jPanel6 = new JPanel();
                    jPanel1.add(jPanel6, BorderLayout.SOUTH);
                    jPanel6.setPreferredSize(new java.awt.Dimension(741, 47));
                    {
                        saveList = new JButton();
                        jPanel6.add(saveList);
                        saveList.setText("save list to default properties");
                        saveList.setPreferredSize(new java.awt.Dimension(227, 28));
                        saveList.addActionListener(new ActionListener() {
                            public void actionPerformed(ActionEvent evt) {
                                swingUtil.invokeAction("saveList.actionPerformed", evt);
                            }
                        });
                    }
                    {
                        clearExecList = new JButton();
                        jPanel6.add(clearExecList);
                        clearExecList.setText("clear properties");
                        clearExecList.setPreferredSize(new java.awt.Dimension(170, 28));
                        clearExecList.addActionListener(new ActionListener() {
                            public void actionPerformed(ActionEvent evt) {
                                swingUtil.invokeAction("clearExecList.actionPerformed", evt);
                            }
                        });
                    }
                    {
                        reloadList = new JButton();
                        jPanel6.add(reloadList);
                        reloadList.setText("reload list");
                        reloadList.setPreferredSize(new java.awt.Dimension(156, 28));
                        reloadList.addActionListener(new ActionListener() {
                            public void actionPerformed(ActionEvent evt) {
                                swingUtil.invokeAction("reloadList.actionPerformed", evt);
                            }
                        });
                    }
                    {
                        contentFilterBtn = new JButton();
                        jPanel6.add(contentFilterBtn);
                        contentFilterBtn.setText("content filter");
                        contentFilterBtn.setPreferredSize(new java.awt.Dimension(176, 27));
                        contentFilterBtn.addActionListener(new ActionListener() {
                            public void actionPerformed(ActionEvent evt) {
                                swingUtil.invokeAction("contentFilterBtn.actionPerformed", evt);
                            }
                        });
                    }
                }
            }
            {
                jPanel2 = new JPanel();
                FlowLayout jPanel2Layout = new FlowLayout();
                jTabbedPane1.addTab("config", null, jPanel2, null);
                jPanel2.setPreferredSize(new java.awt.Dimension(573, 300));
                jPanel2.setLayout(jPanel2Layout);
                {
                    executeAll = new JButton();
                    jPanel2.add(executeAll);
                    executeAll.setText("execute all files");
                    executeAll.setPreferredSize(new java.awt.Dimension(137, 27));
                    executeAll.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            swingUtil.invokeAction("execute.actionPerformed", evt);
                        }
                    });
                }
                {
                    browser = new JButton();
                    jPanel2.add(browser);
                    browser.setText("add file");
                    browser.setPreferredSize(new java.awt.Dimension(140, 28));
                    browser.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            swingUtil.invokeAction("browser.actionPerformed", evt);
                        }
                    });
                }
                {
                    loadProp = new JButton();
                    jPanel2.add(loadProp);
                    loadProp.setText("load properties");
                    loadProp.setPreferredSize(new java.awt.Dimension(158, 32));
                    loadProp.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            swingUtil.invokeAction("loadProp.actionPerformed", evt);
                        }
                    });
                }
                {
                    executeExport = new JButton();
                    jPanel2.add(executeExport);
                    executeExport.setText("export list");
                    executeExport.setPreferredSize(new java.awt.Dimension(145, 31));
                    executeExport.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            swingUtil.invokeAction("executeExport.actionPerformed", evt);
                        }
                    });
                }
                {
                    exportListHasOrignTree = new JButton();
                    jPanel2.add(exportListHasOrignTree);
                    exportListHasOrignTree.setText("export list has orign tree");
                    exportListHasOrignTree.setPreferredSize(new java.awt.Dimension(204, 32));
                    exportListHasOrignTree.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            swingUtil.invokeAction("exportListHasOrignTree.actionPerformed", evt);
                        }
                    });
                }
                {
                    moveFiles = new JButton();
                    jPanel2.add(moveFiles);
                    moveFiles.setText("move selected");
                    moveFiles.setPreferredSize(new java.awt.Dimension(161, 31));
                    moveFiles.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            swingUtil.invokeAction("moveFiles.actionPerformed", evt);
                        }
                    });
                }
                {
                    deleteSelected = new JButton();
                    jPanel2.add(deleteSelected);
                    deleteSelected.setText("delete selected");
                    deleteSelected.setPreferredSize(new java.awt.Dimension(165, 31));
                    deleteSelected.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            swingUtil.invokeAction("deleteSelected.actionPerformed", evt);
                        }
                    });
                }
                {
                    loadClipboardPath = new JButton();
                    jPanel2.add(loadClipboardPath);
                    loadClipboardPath.setText("load clipboard path");
                    loadClipboardPath.setPreferredSize(new java.awt.Dimension(222, 31));
                    loadClipboardPath.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            swingUtil.invokeAction("loadClipboardPath.actionPerformed", evt);
                        }
                    });
                }
                {
                    deleteEmptyDir = new JButton();
                    jPanel2.add(deleteEmptyDir);
                    deleteEmptyDir.setText("delete empty dir");
                    deleteEmptyDir.setPreferredSize(new java.awt.Dimension(222, 31));
                    deleteEmptyDir.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            swingUtil.invokeAction("deleteEmptyDir.actionPerformed", evt);
                        }
                    });
                }
                {
                    openSvnUpdate = new JButton();
                    jPanel2.add(openSvnUpdate);
                    openSvnUpdate.setText("list svn new or modify file");
                    openSvnUpdate.setPreferredSize(new java.awt.Dimension(210, 34));
                    openSvnUpdate.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            swingUtil.invokeAction("openSvnUpdate.actionPerformed", evt);
                        }
                    });
                }
            }
            {
                jPanel7 = new JPanel();
                BorderLayout jPanel7Layout = new BorderLayout();
                jPanel7.setLayout(jPanel7Layout);
                jTabbedPane1.addTab("properties", null, jPanel7, null);
                {
                    jScrollPane3 = new JScrollPane();
                    jPanel7.add(jScrollPane3, BorderLayout.CENTER);
                    jScrollPane3.setPreferredSize(new java.awt.Dimension(741, 415));
                    {
                        DefaultListModel propertiesListModel = new DefaultListModel();
                        propertiesList = new JList();
                        reloadCurrentDirPropertiesList();
                        jScrollPane3.setViewportView(propertiesList);
                        propertiesList.setModel(propertiesListModel);
                        propertiesList.addKeyListener(new KeyAdapter() {
                            public void keyPressed(KeyEvent evt) {
                                swingUtil.invokeAction("propertiesList.keyPressed", evt);
                            }
                        });
                        propertiesList.addMouseListener(new MouseAdapter() {
                            public void mouseClicked(MouseEvent evt) {
                                swingUtil.invokeAction("propertiesList.mouseClicked", evt);
                            }
                        });
                    }
                }
            }
            {
                jPanel8 = new JPanel();
                BorderLayout jPanel8Layout = new BorderLayout();
                jTabbedPane1.addTab("scanner", null, jPanel8, null);
                jPanel8.setLayout(jPanel8Layout);
                {
                    jPanel9 = new JPanel();
                    jPanel8.add(jPanel9, BorderLayout.NORTH);
                    jPanel9.setPreferredSize(new java.awt.Dimension(741, 187));
                    {
                        scanDirText = new JTextField();
                        scanDirText.setToolTipText("scan dir");
                        jPanel9.add(scanDirText);
                        scanDirText.setPreferredSize(new java.awt.Dimension(225, 24));
                        scanDirText.addMouseListener(new MouseAdapter() {
                            public void mouseClicked(MouseEvent evt) {
                                swingUtil.invokeAction("scanDirText.mouseClicked", evt);
                            }
                        });
                    }
                    {
                        jScrollPane6 = new JScrollPane();
                        jPanel9.add(jScrollPane6);
                        jScrollPane6.setPreferredSize(new java.awt.Dimension(168, 69));
                        {
                            scannerText = new JTextArea();
                            scannerText.setToolTipText("query condition");
                            jScrollPane6.setViewportView(scannerText);
                        }
                    }
                    {
                        fileScan = new JButton();
                        jPanel9.add(fileScan);
                        fileScan.setText("start / stop");
                        fileScan.setPreferredSize(new java.awt.Dimension(113, 24));
                        fileScan.addActionListener(new ActionListener() {
                            public void actionPerformed(ActionEvent evt) {
                                swingUtil.invokeAction("fileScan.actionPerformed", evt);
                            }
                        });
                    }
                    {
                        useRegexOnly = new JCheckBox();
                        jPanel9.add(useRegexOnly);
                        useRegexOnly.setText("regex only");
                    }
                    {
                        DefaultComboBoxModel scanTypeModel = new DefaultComboBoxModel();
                        for (ScanType s : ScanType.values()) {
                            scanTypeModel.addElement(s);
                        }
                        scanType = new JComboBox();
                        scanType.setToolTipText("scan type");
                        jPanel9.add(scanType);
                        scanType.setModel(scanTypeModel);
                        scanType.setPreferredSize(new java.awt.Dimension(147, 24));
                    }
                    {
                        DefaultComboBoxModel jComboBox1Model = new DefaultComboBoxModel();
                        for (FileOrDirType f : FileOrDirType.values()) {
                            jComboBox1Model.addElement(f);
                        }
                        fileOrDirTypeCombo = new JComboBox();
                        jPanel9.add(fileOrDirTypeCombo);
                        fileOrDirTypeCombo.setModel(jComboBox1Model);
                        fileOrDirTypeCombo.setToolTipText("scan file or directory!");
                    }
                    {
                        addListToExecList = new JButton();
                        jPanel9.add(addListToExecList);
                        addListToExecList.setText("add list to file list");
                        addListToExecList.setPreferredSize(new java.awt.Dimension(158, 24));
                        addListToExecList.addActionListener(new ActionListener() {
                            public void actionPerformed(ActionEvent evt) {
                                swingUtil.invokeAction("addListToExecList.actionPerformed", evt);
                            }
                        });
                    }
                    {
                        ignoreScanText = new JTextField();
                        ignoreScanText.setToolTipText("ignore scan condition");
                        ignoreScanText.addMouseListener(new MouseAdapter() {
                            public void mouseClicked(MouseEvent evt) {
                                if (!JMouseEventUtil.buttonLeftClick(2, evt)) {
                                    return;
                                }
                                String ignore = null;
                                if (StringUtils.isBlank(ignore = ignoreScanText.getText())) {
                                    return;
                                }
                                DefaultListModel model = (DefaultListModel) ignoreScanList.getModel();
                                model.addElement(ignore);
                            }
                        });
                        jPanel9.add(ignoreScanText);
                        ignoreScanText.setPreferredSize(new java.awt.Dimension(153, 24));
                    }
                    {
                        jScrollPane5 = new JScrollPane();
                        jPanel9.add(jScrollPane5);
                        jScrollPane5.setPreferredSize(new java.awt.Dimension(125, 73));
                        jScrollPane5.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
                        jScrollPane5.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
                        {
                            DefaultListModel ignoreScanListModel = new DefaultListModel();
                            ignoreScanList = new JList();
                            ignoreScanList.setToolTipText("ignore scan condition list");
                            jScrollPane5.setViewportView(ignoreScanList);
                            ignoreScanList.setModel(ignoreScanListModel);
                            ignoreScanList.setPreferredSize(new java.awt.Dimension(125, 73));
                            ignoreScanList.addKeyListener(new KeyAdapter() {
                                public void keyPressed(KeyEvent evt) {
                                    JListUtil.newInstance(ignoreScanList).defaultJListKeyPressed(evt);
                                }
                            });
                        }
                    }
                    {
                        innerScannerText = new JTextField();
                        innerScannerText.setToolTipText("inner scan query condition");
                        jPanel9.add(innerScannerText);
                        innerScannerText.setPreferredSize(new java.awt.Dimension(164, 24));
                        innerScannerText.addMouseListener(new MouseAdapter() {

                            Thread innerScanThread = null;
                            boolean innerScanStop = false;

                            public void mouseClicked(MouseEvent evt) {
                                if (!JMouseEventUtil.buttonLeftClick(2, evt)) {
                                    return;
                                }
                                final String innerText = innerScannerText.getText();
                                if (arrayBackupForInnerScan == null) {
                                    return;
                                }

                                innerScanStop = true;

                                if (innerScanThread == null
                                        || innerScanThread.getState() == Thread.State.TERMINATED) {
                                    innerScanThread = new Thread(Thread.currentThread().getThreadGroup(),
                                            new Runnable() {
                                                public void run() {
                                                    innerScanStop = false;
                                                    System.out.println(
                                                            toString() + " ... start!! ==> " + innerScanStop);
                                                    DefaultListModel model = new DefaultListModel();
                                                    scanList.setModel(model);
                                                    for (int ii = 0; ii < arrayBackupForInnerScan.length; ii++) {
                                                        if (arrayBackupForInnerScan[ii].toString()
                                                                .contains(innerText)) {
                                                            model.addElement(arrayBackupForInnerScan[ii]);
                                                        }
                                                        if (innerScanStop) {
                                                            System.out.println(toString() + " ... over!! ==> "
                                                                    + innerScanStop);
                                                            break;
                                                        }
                                                    }
                                                    System.out.println(toString() + " ... run over!! ==> "
                                                            + innerScanStop);
                                                }
                                            }, "innerScanner_" + System.currentTimeMillis());
                                    innerScanThread.setDaemon(true);
                                    innerScanThread.start();
                                }
                            }
                        });
                    }
                }
                {
                    jScrollPane4 = new JScrollPane();
                    jPanel8.add(jScrollPane4, BorderLayout.CENTER);
                    {
                        DefaultListModel scanListModel = new DefaultListModel();
                        scanList = new JList();
                        jScrollPane4.setViewportView(scanList);
                        scanList.setModel(scanListModel);
                        scanList.addMouseListener(new MouseAdapter() {
                            public void mouseClicked(MouseEvent evt) {
                                swingUtil.invokeAction("scanList.mouseClicked", evt);
                            }
                        });
                        scanList.addKeyListener(new KeyAdapter() {
                            public void keyPressed(KeyEvent evt) {
                                swingUtil.invokeAction("scanList.keyPressed", evt);
                            }
                        });
                    }
                }
                {
                    scannerStatus = new JLabel();
                    jPanel8.add(scannerStatus, BorderLayout.SOUTH);
                    scannerStatus.setPreferredSize(new java.awt.Dimension(741, 27));
                }
            }
        }

        swingUtil.addAction("moveFiles.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                DefaultListModel model = (DefaultListModel) execList.getModel();
                if (model.getSize() == 0 || execList.getSelectedValues().length == 0) {
                    JOptionPaneUtil.newInstance().iconErrorMessage()
                            .showMessageDialog("no selected file can move!", "ERROR");
                    return;
                }
                File exportListTo = FileUtil.getDefaultExportDir(ExecuteOpener.class, true);
                File file = null;
                List<File> list = new ArrayList<File>();
                for (Object obj : execList.getSelectedValues()) {
                    file = new File((String) obj);
                    if (file.exists() && file.isFile()) {
                        list.add(file);
                    }
                }
                File fromBaseDir = FileUtil.exportReceiveBaseDir(list);
                System.out.println("fromBaseDir = " + fromBaseDir);
                int cutLen = 0;
                if (fromBaseDir != null) {
                    cutLen = fromBaseDir.getAbsolutePath().length();
                }
                StringBuilder err = new StringBuilder();
                File newFile = null;
                for (Object obj : execList.getSelectedValues()) {
                    file = new File((String) obj);
                    if (file.exists() && file.isFile()) {
                        newFile = new File(exportListTo + "/" + file.getParent().substring(cutLen),
                                file.getName());
                        newFile.getParentFile().mkdirs();
                        System.out.println("move to : " + newFile);
                        file.renameTo(newFile);
                        if (!newFile.exists()) {
                            err.append(file + "\n");
                        }
                    }
                }
                if (err.length() > 0) {
                    JOptionPaneUtil.newInstance().iconErrorMessage()
                            .showMessageDialog("move file error : \n" + err, "ERROR");
                } else {
                    JOptionPaneUtil.newInstance().iconInformationMessage().showMessageDialog(
                            "move file success : " + execList.getSelectedValues().length, "SUCCESS");
                }
            }
        });
        swingUtil.addAction("deleteSelected.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                StringBuilder sb = new StringBuilder();
                for (Object obj : execList.getSelectedValues()) {
                    sb.append(new File((String) obj).getName() + "\n");
                }
                if (JOptionPaneUtil.ComfirmDialogResult.YES_OK_OPTION != JOptionPaneUtil.newInstance()
                        .confirmButtonYesNo().iconWaringMessage()
                        .showConfirmDialog("are you sure delete file : \n" + sb, "DELETE")) {
                    return;
                }
                File file = null;
                sb = new StringBuilder();
                for (Object obj : execList.getSelectedValues()) {
                    file = new File((String) obj);
                    if (!file.exists()) {
                        continue;
                    }
                    if (file.isDirectory() && file.list().length == 0) {
                        if (!file.delete()) {
                            sb.append(file.getName() + "\n");
                        }
                        continue;
                    }
                    if (!file.delete()) {
                        sb.append(file.getName() + "\n");
                    }
                }
                if (sb.length() != 0) {
                    JOptionPaneUtil.newInstance().iconErrorMessage()
                            .showMessageDialog("delete error list :\n" + sb, "ERROR");
                } else {
                    JOptionPaneUtil.newInstance().iconPlainMessage().showMessageDialog("delete completed!",
                            "SUCCESS");
                }
            }
        });
        swingUtil.addAction("loadClipboardPath.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                File file = new File(ClipboardUtil.getInstance().getContents());
                if (!file.exists()) {
                    return;
                }
                List<File> list = new ArrayList<File>();
                FileUtil.searchFileMatchs(file, ".*", list);
                prop.clear();
                for (File f : list) {
                    if (f.isFile()) {
                        prop.setProperty(f.getAbsolutePath(), "");
                    }
                }
                DefaultListModel model = new DefaultListModel();
                for (Object key : prop.keySet()) {
                    model.addElement(key);
                }
                execList.setModel(model);
            }
        });
        swingUtil.addAction("deleteEmptyDir.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                File file = JFileChooserUtil.newInstance().selectDirectoryOnly().showOpenDialog()
                        .getApproveSelectedFile();
                if (file == null) {
                    JOptionPaneUtil.newInstance().iconErrorMessage().showMessageDialog("file is not correct!",
                            "ERROR");
                    return;
                }
                if (JOptionPaneUtil.ComfirmDialogResult.YES_OK_OPTION != JOptionPaneUtil.newInstance()
                        .iconWaringMessage().confirmButtonYesNo()
                        .showConfirmDialog("are you sure delete empty dir in \n" + file, "WARRNING")) {
                    return;
                }
                List<File> delDir = new ArrayList<File>();
                FileUtil.deleteEmptyDir(file, delDir);
                JOptionPaneUtil.newInstance().iconInformationMessage().showMessageDialog(
                        "delete dir list : \n" + delDir.toString().replace(',', '\n'), "DELETE");
            }
        });
        swingUtil.addAction("browser.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                File file = JFileChooserUtil.newInstance().selectFileAndDirectory().showOpenDialog()
                        .getApproveSelectedFile();
                if (file != null) {
                    DefaultListModel model = (DefaultListModel) execList.getModel();
                    model.addElement(file.getAbsolutePath());
                }
            }
        });
        swingUtil.addAction("addArea.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                if (StringUtils.isBlank(exeArea.getText())) {
                    return;
                }
                DefaultListModel model = (DefaultListModel) execList.getModel();
                StringTokenizer token = new StringTokenizer(exeArea.getText(), "\t\n\r\f");
                while (token.hasMoreElements()) {
                    String val = ((String) token.nextElement()).trim();
                    model.addElement(val);
                    prop.put(val, "");
                }
            }
        });
        swingUtil.addAction("execute.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                DefaultListModel model = (DefaultListModel) execList.getModel();
                for (Enumeration<?> enu = model.elements(); enu.hasMoreElements();) {
                    String val = (String) enu.nextElement();
                    exec(val);
                }
            }
        });
        swingUtil.addAction("execList.keyPressed", new Action() {
            public void action(EventObject evt) throws Exception {
                JListUtil.newInstance(execList).defaultJListKeyPressed(evt);
            }
        });
        //DEFAULT PROP SAVE
        swingUtil.addAction("saveList.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                String orignName = JOptionPaneUtil.newInstance().iconPlainMessage()
                        .showInputDialog("input properties file name", "SAVE");
                File saveFile = null;
                if (StringUtils.isNotBlank(orignName)) {
                    String fileName = orignName;
                    if (!fileName.toLowerCase().endsWith(".properties")) {
                        fileName += ".properties";
                    }
                    fileName = ExecuteOpener.class.getSimpleName() + "_" + fileName;
                    prop.clear();
                    DefaultListModel model = (DefaultListModel) execList.getModel();
                    for (Enumeration<?> enu = model.elements(); enu.hasMoreElements();) {
                        String val = (String) enu.nextElement();
                        prop.put(val, "");
                    }
                    saveFile = new File(jarPositionDir, fileName);
                } else {
                    saveFile = currentPropFile;
                }
                prop.store(new FileOutputStream(saveFile), orignName);
                JOptionPaneUtil.newInstance().iconPlainMessage().showMessageDialog(saveFile,
                        "PROPERTIES CREATE");
            }
        });
        swingUtil.addAction("clearExecList.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                //                    prop.clear();
                //                    reloadExecListProperties(prop);
                execList.setModel(new DefaultListModel());
            }
        });
        swingUtil.addAction("execList.mouseClicked", new Action() {
            public void action(EventObject evt) throws Exception {
                // right button single click event
                if (JMouseEventUtil.buttonRightClick(1, evt)) {
                    JPopupMenuUtil popupUtil = JPopupMenuUtil.newInstance(execList).applyEvent(evt);

                    if (execList.getSelectedValues().length == 1) {
                        popupUtil.addJMenuItem(
                                JFileExecuteUtil.newInstance(new File((String) execList.getSelectedValues()[0]))
                                        .createDefaultJMenuItems());
                        popupUtil.addJMenuItem("----------------", false);
                    }

                    popupUtil.addJMenuItem("eclipse home", new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                            DefaultListModel model = (DefaultListModel) execList.getModel();
                            Object[] arry = model.toArray();
                            for (Object obj : arry) {
                                try {
                                    Runtime.getRuntime().exec(String.format("cmd /c call \"%s\" \"%s\"",
                                            "C:/?/eclipse_jee/eclipse.exe", obj));
                                } catch (IOException ex) {
                                    JCommonUtil.handleException(ex);
                                }
                            }
                        }
                    });
                    popupUtil.addJMenuItem("eclipse company", new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                            DefaultListModel model = (DefaultListModel) execList.getModel();
                            Object[] arry = model.toArray();
                            for (Object obj : arry) {
                                try {
                                    Runtime.getRuntime().exec(String.format("cmd /c call \"%s\" \"%s\"",
                                            "C:/?/iisi_eclipse/eclipse.exe", obj));
                                } catch (IOException ex) {
                                    JCommonUtil.handleException(ex);
                                }
                            }
                        }
                    });

                    popupUtil.addJMenuItem("----------------", false);

                    popupUtil//
                            .addJMenuItem("sort list", new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                    DefaultListModel model = (DefaultListModel) execList.getModel();
                                    Object[] arry = model.toArray();
                                    Arrays.sort(arry);
                                    DefaultListModel model2 = new DefaultListModel();
                                    for (Object obj : arry) {
                                        model2.addElement(obj);
                                    }
                                    execList.setModel(model2);
                                }
                            }).addJMenuItem("keep exists", new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                    DefaultListModel model = (DefaultListModel) execList.getModel();
                                    DefaultListModel model2 = new DefaultListModel();
                                    for (Object obj : model.toArray()) {
                                        if (new File((String) obj).exists()) {
                                            model2.addElement(obj);
                                        }
                                    }
                                    execList.setModel(model2);
                                }
                            }).addJMenuItem("remove duplicate", new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                    DefaultListModel model = (DefaultListModel) execList.getModel();
                                    DefaultListModel model2 = new DefaultListModel();
                                    Set<String> set = new HashSet<String>();
                                    for (Object obj : model.toArray()) {
                                        set.add((String) obj);
                                    }
                                    for (String val : set) {
                                        model2.addElement(val);
                                    }
                                    execList.setModel(model2);
                                }
                            }).addJMenuItem("remove folder", new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                    DefaultListModel model = (DefaultListModel) execList.getModel();
                                    for (int ii = 0; ii < model.getSize(); ii++) {
                                        if (new File((String) model.getElementAt(ii)).isDirectory()) {
                                            model.removeElementAt(ii);
                                            ii--;
                                        }
                                    }
                                }
                            }).addJMenuItem("remove empty folder", new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                    DefaultListModel model = (DefaultListModel) execList.getModel();
                                    File dir = null;
                                    for (int ii = 0; ii < model.getSize(); ii++) {
                                        dir = new File((String) model.getElementAt(ii));
                                        if (dir.isDirectory() && dir.list().length == 0) {
                                            model.removeElementAt(ii);
                                            ii--;
                                        }
                                    }
                                }
                            }).addJMenuItem("----------------", false)
                            .addJMenuItem("diff left : " + (diffLeft != null ? diffLeft.getName() : ""), true,
                                    new ActionListener() {
                                        public void actionPerformed(ActionEvent arg0) {
                                            File value = new File(
                                                    (String) JListUtil.getLeadSelectionObject(execList));
                                            if (value != null && value.isFile() && value.exists()) {
                                                diffLeft = value;
                                            }
                                        }
                                    })
                            .addJMenuItem("diff right : " + (diffRight != null ? diffRight.getName() : ""),
                                    true, new ActionListener() {
                                        public void actionPerformed(ActionEvent arg0) {
                                            File value = new File(
                                                    (String) JListUtil.getLeadSelectionObject(execList));
                                            if (value != null && value.isFile() && value.exists()) {
                                                diffRight = value;
                                            }
                                        }
                                    })
                            .addJMenuItem((diffLeft != null && diffRight != null) ? "diff compare" : "",
                                    (diffLeft != null && diffRight != null), new ActionListener() {
                                        public void actionPerformed(ActionEvent arg0) {
                                            try {
                                                Runtime.getRuntime().exec(String.format(
                                                        "cmd /c call TortoiseMerge.exe /base:\"%s\" /theirs:\"%s\"",
                                                        diffLeft, diffRight));
                                            } catch (IOException ex) {
                                                JCommonUtil.handleException(ex);
                                            }
                                        }
                                    })
                            .addJMenuItem((execList.getSelectedValues().length == 2) ? "diff compare" : "",
                                    (execList.getSelectedValues().length == 2), new ActionListener() {
                                        public void actionPerformed(ActionEvent arg0) {
                                            try {
                                                Runtime.getRuntime().exec(String.format(
                                                        "cmd /c call TortoiseMerge.exe /base:\"%s\" /theirs:\"%s\"",
                                                        execList.getSelectedValues()[0],
                                                        execList.getSelectedValues()[1]));
                                            } catch (IOException ex) {
                                                JCommonUtil.handleException(ex);
                                            }
                                        }
                                    })
                            .addJMenuItem("----------------", false)//
                            .show();//
                }

                // left button double click event 
                int pos = execList.getLeadSelectionIndex();
                if (pos == -1) {
                    return;
                }
                if (((MouseEvent) evt).getClickCount() < 2) {
                    return;
                }
                DefaultListModel model = (DefaultListModel) execList.getModel();
                String val = (String) model.getElementAt(pos);
                exec(val);
            }
        });
        swingUtil.addAction("loadProp.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                File file = JFileChooserUtil.newInstance().selectFileOnly().showOpenDialog()
                        .getApproveSelectedFile();
                if (file == null) {
                    JOptionPaneUtil.newInstance().iconErrorMessage().showMessageDialog("file not correct!",
                            "ERROR");
                    return;
                }
                reloadExecListProperties(file);
                setTitle("load prop : " + file.getName());
            }
        });
        swingUtil.addAction("reloadList.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                reloadExecListProperties(prop);
            }
        });
        swingUtil.addAction("exportListHasOrignTree.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                DefaultListModel model = (DefaultListModel) execList.getModel();
                if (model.isEmpty()) {
                    JOptionPaneUtil.newInstance().iconErrorMessage().showMessageDialog("no file can export!",
                            "ERROR");
                    return;
                }
                List<File> allList = new ArrayList<File>();
                for (int ii = 0; ii < model.getSize(); ii++) {
                    allList.add(new File((String) model.getElementAt(ii)));
                }
                File baseDir = FileUtil.exportReceiveBaseDir(allList);
                System.out.println("common base dir : " + baseDir);
                boolean dynamicBaseDir = baseDir == null;

                File tmp = null;
                File copyTo = null;
                int realCopyCount = 0;

                File exportListTo = FileUtil.getDefaultExportDir(ExecuteOpener.class, true);
                for (int ii = 0; ii < model.getSize(); ii++) {
                    String val = (String) model.getElementAt(ii);
                    if (StringUtils.isBlank(val)) {
                        continue;
                    }
                    tmp = new File(val);
                    if (tmp.isDirectory()) {
                        continue;
                    }
                    File copyFrom = getCorrectFile(tmp);
                    if (dynamicBaseDir) {
                        baseDir = FileUtil.getRoot(copyFrom);
                    }
                    copyTo = FileUtil.exportFileToTargetPath(copyFrom, baseDir, exportListTo);
                    if (!copyTo.getParentFile().exists()) {
                        copyTo.getParentFile().mkdirs();
                    }
                    System.out.println("## file : " + tmp + " -- > " + copyFrom);
                    System.out.println("\t copy to : " + copyTo);
                    FileUtil.copyFile(copyFrom, copyTo);
                    realCopyCount++;
                }
                JOptionPaneUtil.newInstance().iconInformationMessage().showMessageDialog(
                        "copy completed!\ntotal : " + model.getSize() + "\ncopy : " + realCopyCount, "SUCCESS");
            }
        });
        swingUtil.addAction("executeExport.actionPerformed", new Action() {
            public void action(EventObject evt) throws Exception {
                DefaultListModel model = (DefaultListModel) execList.getModel();
                if (model.isEmpty()) {
                    JOptionPaneUtil.newInstance().iconErrorMessage().showMessageDialog("no file can export!",
                            "ERROR");
                    return;
                }
                File tmp = null;
                File copyTo = null;
                int realCopyCount = 0;
                File exportListTo = FileUtil.getDefaultExportDir(ExecuteOpener.class, true);
                BufferedWriter writer = new BufferedWriter(
                        new OutputStreamWriter(new FileOutputStream(exportListTo + "/output_log.txt"), "BIG5"));
                for (int ii = 0; ii < model.getSize(); ii++) {
                    String val = (String) model.getElementAt(ii);
                    if (StringUtils.isBlank(val)) {
                        continue;
                    }
                    tmp = new File(val);
                    if (tmp.isDirectory()) {
                        continue;
                    }
                    if (isNeedToCopy(exportListTo, tmp)) {
                        File copyFrom = getCorrectFile(tmp);
                        System.out.println("## file : " + tmp + " -- > " + copyFrom);
                        copyTo = new File(exportListTo, copyFrom.getName());
                        for (int jj = 0; copyTo.exists(); jj++) {
                            String name = copyFrom.getName();
                            int pos = name.lastIndexOf(".");
                            String prefix = name.substring(0, pos);
                            String rearfix = name.substring(pos);
                            copyTo = new File(exportListTo, prefix + "_R" + jj + rearfix);
                        }
                        FileUtil.copyFile(copyFrom, copyTo);
                        writer.write(tmp.getAbsolutePath()
                                + (!tmp.getName().equals(copyTo.getName()) ? "\t [rename] : " + copyTo.getName()
                                        : ""));
                        realCopyCount++;
                    } else {
                        writer.write(tmp.getAbsolutePath() + "\t [has same file, ommit!]");
                    }
                    writer.newLine();
                }
                writer.flush();
                writer.close();
                JOptionPaneUtil.newInstance().iconInformationMessage().showMessageDialog(
                        "copy completed!\ntotal : " + model.getSize() + "\ncopy : " + realCopyCount, "SUCCESS");
            }
        });
        swingUtil.addAction("jTabbedPane1.mouseClicked", new Action() {
            public void action(EventObject evt) throws Exception {
                if (!JMouseEventUtil.buttonLeftClick(2, evt)) {
                    return;
                }
                File file = new File(getTitle());
                if (file.exists()) {
                    JOptionPaneUtil.newInstance().iconPlainMessage().showMessageDialog(file,
                            "current properties");
                }
                ClipboardUtil.getInstance().setContents(file);
            }
        });
        swingUtil.addAction("propertiesList.mouseClicked", new Action() {
            public void action(EventObject evt) throws Exception {
                File file = (File) propertiesList.getSelectedValue();
                JPopupMenuUtil.newInstance(propertiesList).applyEvent(evt)
                        .addJMenuItem("reload list", new ActionListener() {
                            public void actionPerformed(ActionEvent paramActionEvent) {
                                reloadCurrentDirPropertiesList();
                            }
                        }).addJMenuItem(JFileExecuteUtil.newInstance(file).createDefaultJMenuItems()).show();
                if (file == null) {
                    return;
                }
                if (!JMouseEventUtil.buttonLeftClick(2, evt)) {
                    return;
                }
                prop.clear();
                prop.load(new FileInputStream(file));
                currentPropFile = file;
                reloadExecListProperties(prop);
                setTitle("properties : " + file.getName());
            }
        });
        swingUtil.addAction("propertiesList.keyPressed", new Action() {
            public void action(EventObject evt) throws Exception {
                if (!JMouseEventUtil.buttonLeftClick(2, evt)) {
                    return;
                }
                JListUtil.newInstance(propertiesList).defaultJListKeyPressed(evt);
            }
        });
        swingUtil.addAction("jTabbedPane1.stateChanged", new Action() {
            public void action(EventObject evt) throws Exception {
                if (jTabbedPane1.getSelectedIndex() == 2) {
                    reloadCurrentDirPropertiesList();
                }
            }
        });
        swingUtil.addAction("scanList.keyPressed", new Action() {
            public void action(EventObject evt) throws Exception {
                JListUtil.newInstance(scanList).defaultJListKeyPressed(evt);
            }
        });
        swingUtil.addAction("scanList.mouseClicked", new Action() {
            public void action(EventObject evt) throws Exception {
                System.out.println("index = " + scanList.getLeadSelectionIndex());
                final Object[] vals = scanList.getSelectedValues();
                if (vals == null || vals.length == 0) {
                    return;
                }
                JPopupMenuUtil.newInstance(scanList).applyEvent(evt)
                        .addJMenuItem("add to file list : " + vals.length, new ActionListener() {
                            public void actionPerformed(ActionEvent arg0) {
                                File file = null;
                                DefaultListModel model = (DefaultListModel) execList.getModel();
                                for (Object v : vals) {
                                    file = (File) v;
                                    model.addElement(file.getAbsolutePath());
                                }
                            }
                        }).show();
            }
        });
        swingUtil.addAction("fileScan.actionPerformed", new Action() {

            Thread scanMainThread = null;

            public void action(EventObject evt) throws Exception {
                String scanText_ = scannerText.getText();
                final boolean anyFileMatch = StringUtils.isEmpty(scanText_);
                final String scanText = anyFileMatch ? UUID.randomUUID().toString() : scanText_;
                final FileOrDirType fileOrDirType = (FileOrDirType) fileOrDirTypeCombo.getSelectedItem();

                String scanDir_ = scanDirText.getText();
                final File scanDir = new File(scanDir_);
                if (StringUtils.isEmpty(scanDir_)) {
                    JOptionPaneUtil.newInstance().iconErrorMessage()
                            .showMessageDialog("scan dir text can't empty!", "ERROR");
                    return;
                }
                if (!scanDir.exists()) {
                    JOptionPaneUtil.newInstance().iconErrorMessage().showMessageDialog("directory is't exists!",
                            "ERROR");
                    return;
                }

                Object[] igArry_ = ((DefaultListModel) ignoreScanList.getModel()).toArray();
                final String[] igArry = new String[igArry_.length];
                for (int ii = 0; ii < igArry.length; ii++) {
                    igArry[ii] = (String) igArry_[ii];
                }
                final boolean ignoreCheck = igArry.length > 0;

                final DefaultListModel model = new DefaultListModel();

                final StringTokenizer tok = new StringTokenizer(scanText);

                if (scanMainThread == null || scanMainThread.getState() == Thread.State.TERMINATED) {
                    scanMainThread = new Thread(Thread.currentThread().getThreadGroup(), new Runnable() {

                        ScanType scanTp;

                        public void run() {
                            currentScannerThreadStop = false;
                            final long startTime = System.currentTimeMillis();
                            scanTp = (ScanType) scanType.getSelectedItem();

                            List<Thread> threadList = new ArrayList<Thread>();
                            final Map<String, Integer> matchCountMap = new HashMap<String, Integer>();
                            for (; tok.hasMoreElements();) {
                                final String scanVal = (String) tok.nextElement();
                                System.out.println("add scan condition = " + scanVal);

                                Pattern ppp = null;
                                try {
                                    ppp = Pattern.compile(scanVal);
                                } catch (Exception ex) {
                                    System.out.println(ex);
                                }

                                final Pattern scanTextPattern = ppp;

                                Thread currentScannerThread = new Thread(
                                        Thread.currentThread().getThreadGroup(), new Runnable() {

                                            int matchCount = 0;

                                            void addElement(File file) {
                                                if (scanTp.filter(anyFileMatch, scanVal, scanTextPattern, file,
                                                        ignoreCheck, igArry)) {
                                                    for (int ii = 0;; ii++) {
                                                        try {
                                                            model.addElement(file);
                                                            matchCount++;
                                                            break;
                                                        } catch (Exception ex) {
                                                            System.err.println(
                                                                    file + ", error occor !!! ==> " + ex);
                                                            if (ii > 10) {
                                                                break;
                                                            }
                                                        }
                                                    }
                                                }
                                            }

                                            void find(File file) {
                                                if (currentScannerThreadStop) {
                                                    return;
                                                }
                                                if (file == null || !file.exists()) {
                                                    System.out
                                                            .println("file == null || !file.exists()\t" + file);
                                                    return;
                                                }
                                                scannerStatus.setText(
                                                        model.getSize() + " : " + file.getAbsolutePath());
                                                if (file.isDirectory()) {
                                                    if (file.listFiles() != null) {
                                                        for (File f : file.listFiles()) {
                                                            find(f);
                                                        }
                                                    } else {
                                                        System.out
                                                                .println("file.listFiles() == null!!\t" + file);
                                                    }
                                                    switch (fileOrDirType) {
                                                    case DIRECTORY_ONLY:
                                                        addElement(file);
                                                        break;
                                                    case ALL:
                                                        addElement(file);
                                                        break;
                                                    }
                                                }
                                                if (file.isFile()) {
                                                    switch (fileOrDirType) {
                                                    case FILE_ONLY:
                                                        addElement(file);
                                                        break;
                                                    case ALL:
                                                        addElement(file);
                                                        break;
                                                    }
                                                }
                                            }

                                            public void run() {
                                                find(scanDir);
                                                matchCountMap.put(scanVal, matchCount);
                                            }
                                        }, "file_scann_" + System.currentTimeMillis());
                                currentScannerThread.setDaemon(true);
                                currentScannerThread.start();
                                threadList.add(currentScannerThread);
                            }

                            for (;;) {
                                try {
                                    Thread.sleep(1000);
                                    boolean allTerminated = true;
                                    for (int ii = 0; ii < threadList.size(); ii++) {
                                        if (threadList.get(ii).getState() != Thread.State.TERMINATED) {
                                            allTerminated = false;
                                            break;
                                        }
                                    }
                                    if (allTerminated) {
                                        System.out.println("all done...");
                                        break;
                                    }
                                } catch (InterruptedException e) {
                                    JCommonUtil.handleException(e);
                                }
                            }

                            long endTime = System.currentTimeMillis() - startTime;

                            String status = "scan completed \n during :" + endTime + "\n file : "
                                    + model.getSize() + "\n \tResult : \n " + matchCountMap;
                            JOptionPaneUtil.newInstance().iconPlainMessage().showMessageDialog(status,
                                    "COMPLETED");
                            scannerStatus.setText(status);
                            scanList.setModel(model);

                            arrayBackupForInnerScan = ((DefaultListModel) scanList.getModel()).toArray();

                            currentScannerThreadStop = false;
                        }
                    }, "file_scann_main_" + System.currentTimeMillis());
                    scanMainThread.setDaemon(true);
                    scanMainThread.start();
                } else {
                    if (JCommonUtil._JOptionPane_showConfirmDialog_yesNoOption(
                            "scanner is running \n want to stop??", "WARNING")) {
                        currentScannerThreadStop = true;
                    }
                }
            }
        });
        swingUtil.addAction("scanDirText.mouseClicked", new Action() {
            public void action(EventObject evt) throws Exception {
                if (!JMouseEventUtil.buttonLeftClick(2, evt)) {
                    return;
                }
                File dir = JFileChooserUtil.newInstance().selectDirectoryOnly().showOpenDialog()
                        .getApproveSelectedFile();
                if (dir == null) {
                    return;
                }
                scanDirText.setText(dir.getAbsolutePath());
            }
        });
        swingUtil.addAction("addListToExecList.actionPerformed", new Action() {

            Thread moveThread = null;

            public void action(EventObject evt) throws Exception {
                if (moveThread != null && moveThread.getState() != Thread.State.TERMINATED) {
                    JCommonUtil._jOptionPane_showMessageDialog_error("add list process already running!");
                    return;
                }
                moveThread = new Thread(Thread.currentThread().getThreadGroup(), new Runnable() {
                    public void run() {
                        DefaultListModel model = (DefaultListModel) scanList.getModel();
                        DefaultListModel model2 = (DefaultListModel) execList.getModel();
                        for (int ii = 0; ii < model.getSize(); ii++) {
                            File f = (File) model.getElementAt(ii);
                            model2.addElement(f.getAbsolutePath());
                        }
                        if (model.getSize() > 1000) {
                            JCommonUtil._jOptionPane_showMessageDialog_info(
                                    "add list completed!\n" + model.getSize());
                        }
                    }
                }, "addListToExecList.actionPerformed_" + System.currentTimeMillis());
                moveThread.setDaemon(true);
                moveThread.start();
            }
        });
        swingUtil.addAction("openSvnUpdate.actionPerformed", new Action() {

            Pattern svnPattern = Pattern.compile("^(?:[M|\\?])\\s+\\d*\\s+(.+)$");

            Thread svnThread = null;

            public void action(EventObject evt) throws Exception {
                if (svnThread != null && svnThread.getState() != Thread.State.TERMINATED) {
                    JCommonUtil._jOptionPane_showMessageDialog_error("svn scan process already running!");
                    return;
                }
                final File svnDir = JCommonUtil._jFileChooser_selectDirectoryOnly();
                if (svnDir == null) {
                    JCommonUtil._jOptionPane_showMessageDialog_error("dir is not correct!");
                    return;
                }

                svnThread = new Thread(Thread.currentThread().getThreadGroup(), new Runnable() {
                    public void run() {
                        try {
                            Process process = Runtime.getRuntime()
                                    .exec(String.format("svn status -u \"%s\"", svnDir));
                            BufferedReader reader = new BufferedReader(
                                    new InputStreamReader(process.getInputStream()));
                            Matcher matcher = null;
                            File file = null;
                            DefaultListModel model = new DefaultListModel();
                            List<File> scanList = new ArrayList<File>();
                            for (String line = null; (line = reader.readLine()) != null;) {
                                matcher = svnPattern.matcher(line);
                                if (matcher.find()) {
                                    file = new File(matcher.group(1));
                                    if (file.isFile()) {
                                        model.addElement(file.getAbsolutePath());
                                    }
                                    if (file.isDirectory()) {
                                        scanList.clear();
                                        FileUtil.searchFileMatchs(file, ".*", scanList);
                                        for (File f : scanList) {
                                            model.addElement(f.getAbsolutePath());
                                        }
                                    }
                                } else {
                                    System.out.println("ignore : [" + line + "]");
                                }
                            }
                            reader.close();
                            execList.setModel(model);
                            setTitle("svn : " + svnDir);

                            JCommonUtil._jOptionPane_showMessageDialog_info("svn scan completed!");
                        } catch (IOException e) {
                            JCommonUtil.handleException(e);
                        }
                    }
                }, "svn_scan" + System.currentTimeMillis());
                svnThread.setDaemon(true);
                svnThread.start();
            }
        });
        swingUtil.addAction("contentFilterBtn.actionPerformed", new Action() {
            Thread thread = null;
            String encode = Charset.defaultCharset().displayName();

            public void action(EventObject evt) throws Exception {
                if (thread != null && thread.getState() != Thread.State.TERMINATED) {
                    JCommonUtil._jOptionPane_showMessageDialog_error("scan process already running!");
                    return;
                }

                final String filter = JCommonUtil._jOptionPane_showInputDialog("input filter content?");
                if (StringUtils.isEmpty(filter)) {
                    JCommonUtil._jOptionPane_showMessageDialog_error("filter is empty!");
                    return;
                }

                Pattern tmpPattern = null;
                try {
                    tmpPattern = Pattern.compile(filter);
                } catch (Exception ex) {
                }
                final Pattern filterPattern = tmpPattern;

                try {
                    encode = JCommonUtil._jOptionPane_showInputDialog("input encode?", encode);
                } catch (Exception ex) {
                    JCommonUtil._jOptionPane_showMessageDialog_error("error encode!");
                    return;
                }

                thread = new Thread(Thread.currentThread().getThreadGroup(), new Runnable() {
                    public void run() {
                        DefaultListModel model = (DefaultListModel) execList.getModel();
                        DefaultListModel model_ = new DefaultListModel();
                        File file = null;
                        BufferedReader reader = null;
                        for (int ii = 0; ii < model.getSize(); ii++) {
                            file = new File((String) model.getElementAt(ii));
                            if (!file.exists()) {
                                continue;
                            }
                            try {
                                reader = new BufferedReader(
                                        new InputStreamReader(new FileInputStream(file), encode));
                                for (String line = null; (line = reader.readLine()) != null;) {
                                    if (line.contains(filter)) {
                                        model_.addElement(file.getAbsolutePath());
                                        break;
                                    }
                                    if (filterPattern != null && filterPattern.matcher(line).find()) {
                                        model_.addElement(file.getAbsolutePath());
                                        break;
                                    }
                                }
                                reader.close();
                            } catch (Exception e) {
                                JCommonUtil.handleException(e);
                            }
                        }
                        execList.setModel(model_);
                        JCommonUtil._jOptionPane_showMessageDialog_info("completed!");
                    }
                }, UUID.randomUUID().toString());
                thread.setDaemon(true);
                thread.start();
            }
        });
        swingUtil.addAction("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", new Action() {
            public void action(EventObject evt) throws Exception {
            }
        });

        this.setSize(870, 551);
    } catch (Exception e) {
        e.printStackTrace();
    }
}