Package jp.sf.amateras.stepcounter.diffcount.renderer.gui

Source Code of jp.sf.amateras.stepcounter.diffcount.renderer.gui.DiffCountFrame

package jp.sf.amateras.stepcounter.diffcount.renderer.gui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

import jp.sf.amateras.stepcounter.diffcount.DiffCounter;
import jp.sf.amateras.stepcounter.diffcount.object.AbstractDiffResult;
import jp.sf.amateras.stepcounter.diffcount.object.DiffFolderResult;

import org.dyno.visual.swing.layouts.Bilateral;
import org.dyno.visual.swing.layouts.Constraints;
import org.dyno.visual.swing.layouts.GroupLayout;
import org.dyno.visual.swing.layouts.Leading;
import org.dyno.visual.swing.layouts.Trailing;
import org.jdesktop.swingx.JXTreeTable;
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode;


//VS4E -- DO NOT REMOVE THIS LINE!
public class DiffCountFrame extends JFrame {

  private static final long serialVersionUID = 1L;
  private JLabel jLabel0;
  private JButton browseOldRoot;
  private JLabel jLabel1;
  private JButton browseNewRoot;
  private JTextField oldRoot;
  private JTextField newRoot;

  private JButton executeDiffCount;
  private JXTreeTable resultTable;
  private JScrollPane jScrollPane0;
  private static final String PREFERRED_LOOK_AND_FEEL = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
  public DiffCountFrame() {
    initComponents();
  }

  private void initComponents() {
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    setLayout(new GroupLayout());
    add(getJLabel0(), new Constraints(new Leading(12, 12, 12), new Leading(12, 12, 12)));
    add(getJTextField0(), new Constraints(new Bilateral(123, 82, 4), new Leading(10, 12, 12)));
    add(getBrowseOldRoot(), new Constraints(new Trailing(12, 129, 129), new Leading(8, 12, 12)));
    add(getJLabel1(), new Constraints(new Leading(12, 100, 100), new Leading(38, 12, 12)));
    add(getJTextField1(), new Constraints(new Bilateral(123, 82, 6), new Leading(35, 12, 12)));
    add(getBrowseNewRoot(), new Constraints(new Trailing(12, 131, 131), new Leading(34, 12, 12)));
    add(getExecuteDiffCount(), new Constraints(new Trailing(12, 12, 12), new Leading(63, 12, 12)));
    add(getJScrollPane0(), new Constraints(new Bilateral(12, 12, 23), new Bilateral(90, 12, 23)));
    setSize(475, 258);
  }

  private JScrollPane getJScrollPane0() {
    if (jScrollPane0 == null) {
      jScrollPane0 = new JScrollPane();
      jScrollPane0.setViewportView(getJTable0());
    }
    return jScrollPane0;
  }

  private JXTreeTable getJTable0() {
    if (resultTable == null) {
      resultTable = new JXTreeTable(new DiffCountTreeTableModel());
      resultTable.setEditable(false);
    }
    return resultTable;
  }

  private JButton getExecuteDiffCount() {
    if (executeDiffCount == null) {
      executeDiffCount = new JButton();
      executeDiffCount.setText("�X�e�b�v���̍����𑪒�");
      executeDiffCount.setEnabled(false);
      executeDiffCount.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          executeDiffCountActionActionPerformed(event);
        }
      });
    }
    return executeDiffCount;
  }

  private JButton getBrowseNewRoot() {
    if (browseNewRoot == null) {
      browseNewRoot = new JButton();
      browseNewRoot.setText("�Q��...");
      browseNewRoot.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          browseNewRootActionActionPerformed(event);
        }
      });
    }
    return browseNewRoot;
  }

  private JButton getBrowseOldRoot() {
    if (browseOldRoot == null) {
      browseOldRoot = new JButton();
      browseOldRoot.setText("�Q��...");
      browseOldRoot.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          browseOldRootActionActionPerformed(event);
        }
      });
    }
    return browseOldRoot;
  }

  private JTextField getJTextField1() {
    if (newRoot == null) {
      newRoot = new JTextField();
      newRoot.getDocument().addDocumentListener(new DocumentListener() {
        public void removeUpdate(DocumentEvent e) {
          updateStatus();
        }

        public void insertUpdate(DocumentEvent e) {
          updateStatus();
        }

        public void changedUpdate(DocumentEvent e) {
          updateStatus();
        }
      });
    }
    return newRoot;
  }

  private JTextField getJTextField0() {
    if (oldRoot == null) {
      oldRoot = new JTextField();
      oldRoot.getDocument().addDocumentListener(new DocumentListener() {
        public void removeUpdate(DocumentEvent e) {
          updateStatus();
        }

        public void insertUpdate(DocumentEvent e) {
          updateStatus();
        }

        public void changedUpdate(DocumentEvent e) {
          updateStatus();
        }
      });
    }
    return oldRoot;
  }

  private JLabel getJLabel1() {
    if (jLabel1 == null) {
      jLabel1 = new JLabel();
      jLabel1.setText("�ύX��̃\�[�X�c���[:");
    }
    return jLabel1;
  }

  private JLabel getJLabel0() {
    if (jLabel0 == null) {
      jLabel0 = new JLabel();
      jLabel0.setText("�ύX�O�̃\�[�X�c���[:");
    }
    return jLabel0;
  }

  private static void installLnF() {
    try {
      String lnfClassname = UIManager.getCrossPlatformLookAndFeelClassName();
      UIManager.setLookAndFeel(lnfClassname);
    } catch (Exception e) {
      System.err.println("Cannot install " + PREFERRED_LOOK_AND_FEEL
          + " on this platform:" + e.getMessage());
    }
  }

  /**
   * Main entry of the class.
   * Note: This class is only created so that you can easily preview the result at runtime.
   * It is not expected to be managed by the designer.
   * You can modify it as you like.
   */
  public static void main(String[] args) {
    installLnF();
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        DiffCountFrame frame = new DiffCountFrame();
        frame.setDefaultCloseOperation(DiffCountFrame.EXIT_ON_CLOSE);
        frame.setTitle("��������J�E���^");
        frame.getContentPane().setPreferredSize(frame.getSize());
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
      }
    });
  }

  /**
   * �ύX�O�̃\�[�X�c���[�̎Q�ƃ{�^���̃N���b�N���ɌĂяo�����C�x���g�n���h���ł��B
   *
   * @param event �C�x���g
   */
  private void browseOldRootActionActionPerformed(ActionEvent event) {
    File file = chooseFolder();
    if(file != null){
      oldRoot.setText(file.getAbsolutePath());
      updateStatus();
    }
  }

  /**
   * �ύX��̃\�[�X�c���[�̎Q�ƃ{�^���̃N���b�N���ɌĂяo�����C�x���g�n���h���ł��B
   *
   * @param event �C�x���g
   */
  private void browseNewRootActionActionPerformed(ActionEvent event) {
    File file = chooseFolder();
    if(file != null){
      newRoot.setText(file.getAbsolutePath());
      updateStatus();
    }
  }

  /**
   * �f�B���N�g���I���_�C�A���O�Ńf�B���N�g����I�����܂��B
   *
   * @return �I�����ꂽ�f�B���N�g���B�L�����Z�����ꂽ�ꍇ��null��Ԃ��܂��B
   */
  private File chooseFolder(){
    JFileChooser chooser = new JFileChooser();
    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    if(chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION){
      return chooser.getSelectedFile();
    }
    return null;
  }

  /**
   * �X�e�b�v���̍����𑪒�{�^���̏�Ԃ��X�V���܂��B
   */
  private void updateStatus(){
    executeDiffCount.setEnabled(false);

    String oldRoot = this.oldRoot.getText();
    String newRoot = this.newRoot.getText();

    if(oldRoot.length() != 0 && newRoot.length() != 0){

      File oldFile = new File(oldRoot);
      File newFile = new File(newRoot);

      if(oldFile.exists() && oldFile.isDirectory() &&
          newFile.exists() && newFile.isDirectory()){
        executeDiffCount.setEnabled(true);
      }
    }
  }

  /**
   * �X�e�b�v���̍����𑪒�{�^���̃N���b�N���ɌĂяo�����C�x���g�n���h���ł��B
   * <p>
   * �X�e�b�v���̍����𑪒肵�A<code>JTable</code>�ɑ��茋�ʂ�\�����܂��B
   *
   * @param event �C�x���g
   */
  private void executeDiffCountActionActionPerformed(ActionEvent event) {
    File oldRoot = new File(this.oldRoot.getText());
    File newRoot = new File(this.newRoot.getText());

    DiffFolderResult root = DiffCounter.count(oldRoot, newRoot);

        DiffCountTreeTableModel model = (DiffCountTreeTableModel) resultTable.getTreeTableModel();
        model.setRoot(wrapToTreeTableModel(root));
  }

  /**
   * �J�E���g���ʂ�JXTreeTable�ŕ\�����邽�߂�DefaultMutableTreeTableNode�Ń��b�v���܂��B
   */
  private DefaultMutableTreeTableNode wrapToTreeTableModel(DiffFolderResult folder){

        DefaultMutableTreeTableNode node = new DefaultMutableTreeTableNode(folder);

        for(AbstractDiffResult child: folder.getChildren()){
          if(child instanceof DiffFolderResult){
            node.add(wrapToTreeTableModel((DiffFolderResult) child));
          } else {
                DefaultMutableTreeTableNode childNode = new DefaultMutableTreeTableNode(child);
            node.add(childNode);
          }
        }

        return node;
  }

}
TOP

Related Classes of jp.sf.amateras.stepcounter.diffcount.renderer.gui.DiffCountFrame

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.