コード例 #1
0
ファイル: FilesTab.java プロジェクト: conicalflask/fs2
  JSplitPane createBrowseSection() {
    spinner = new LoadingAnimationHelper();
    splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    splitPane.setContinuousLayout(true);
    fs = frame.gui.ssvr.getIndexNodeCommunicator().getFileSystem();

    browseTree = new JTree(fs);

    // Allows the filesystem to keep refreshing directories we have visible:
    fs.setPathRequired(
        new PathRequired() {
          @Override
          public boolean required(TreePath path) {
            return browseTree.isExpanded(path);
          }
        });
    fs.addTreeModelListener(spinner);

    browseTree.setCellRenderer(browseTreeRenderer = new BrowseTreeCellRenderer());
    browseTree.addTreeSelectionListener(this);
    browseTree.addMouseMotionListener(this);
    browseTree.addMouseListener(this);
    browseTree.addTreeExpansionListener(this);
    browseTree.setRootVisible(false);
    browseTree.expandPath(fs.getBrowseRoot().getPath());

    JScrollPane treeView = new JScrollPane(browseTree);
    treeView.setMinimumSize(new Dimension(100, 100));
    splitPane.setLeftComponent(treeView);

    filesTable = new FancierTable(fs, frame.gui.conf, CK.FILES_TABLE_COLWIDTHS);
    filesTable.addMouseListener(this);
    filesTable.getSelectionModel().addListSelectionListener(this);
    filesTable.getColumn(fs.getColumnName(0)).setCellRenderer(new FilesTableNameRenderer());

    JScrollPane filesView = new JScrollPane(filesTable);
    splitPane.setRightComponent(filesView);
    splitPane.setDividerLocation(frame.gui.conf.getInt(CK.FILES_DIVIDER_LOCATION));
    splitPane.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY, this);

    return splitPane;
  }