|
|
|
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);
|
|
|
|
}
|
|
|
|
}
|