package com.fr.env; import com.fr.design.beans.BasicBeanPane; import com.fr.design.env.LocalDesignerWorkspaceInfo; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextarea.UITextArea; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.itree.filetree.JFileTree; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.file.filter.OnlyShowDirectoryFileFilter; import com.fr.stable.StringUtils; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import java.awt.BorderLayout; import java.io.File; /** * @author yaohwu */ public class LocalEnvPane extends BasicBeanPane<LocalDesignerWorkspaceInfo> { private UITextField pathTextField; private JFileTree localEnvTree; public LocalEnvPane() { this.setLayout(FRGUIPaneFactory.createM_BorderLayout()); // northPane JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); this.add(northPane, BorderLayout.NORTH); northPane.add(new UILabel(Toolkit.i18nText("Fine-Design_Basic_Location") + ":"), BorderLayout.WEST); pathTextField = new UITextField(); northPane.add(pathTextField, BorderLayout.CENTER); // 删除选择文件按钮 添加JFileTree // centerPane JPanel centerPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); this.add(centerPane, BorderLayout.CENTER); // 添加JFileTree localEnvTree = new JFileTree(); JScrollPane localEnvPane = new JScrollPane(localEnvTree); centerPane.add(localEnvPane, BorderLayout.CENTER); // 设置根路径File 和 文件过滤类型 localEnvTree.setFileFilter(new OnlyShowDirectoryFileFilter()); localEnvTree.setRootFiles(File.listRoots()); localEnvTree.addTreeSelectionListener(new TreeSelectionListener() { @Override public void valueChanged(TreeSelectionEvent e) { File selectFile = localEnvTree.getSelectedFile(); if (selectFile == null) { return; } pathTextField.setText(selectFile.getPath()); } }); UITextArea description = new UITextArea(); centerPane.add(description, BorderLayout.SOUTH); description.setText(Toolkit.i18nText("Fine-Design_Basic_Env_Des1")); description.setEditable(false); } @Override protected String title4PopupWindow() { return Toolkit.i18nText("Fine-Design_Basic_Location"); } @Override public LocalDesignerWorkspaceInfo updateBean() { String path = pathTextField.getText(); return LocalDesignerWorkspaceInfo.create(StringUtils.EMPTY, path); } public String getPath() { return pathTextField.getText(); } @Override public void populateBean(LocalDesignerWorkspaceInfo ob) { if (StringUtils.isBlank(ob.getPath())) { return; } pathTextField.setText(ob.getPath()); final File tmpFile = new File(ob.getPath()); localEnvTree.selectFile(tmpFile); localEnvTree.setEnabled(true); } }