ju 6 years ago
parent
commit
a33416fb4c
  1. 6
      designer-base/src/com/fr/design/DesignState.java
  2. 2
      designer-base/src/com/fr/design/DesignerEnvManager.java
  3. 10
      designer-base/src/com/fr/design/mainframe/DesignerFrame.java
  4. 121
      designer-base/src/com/fr/design/mainframe/TemplatePane.java
  5. 4
      designer-base/src/com/fr/file/FileNodeFILE.java
  6. 15
      designer-realize/src/com/fr/start/EnvSwitcher.java

6
designer-base/src/com/fr/design/DesignState.java

@ -39,9 +39,9 @@ public class DesignState {
public DesignState(ToolBarMenuDockPlus plus) { public DesignState(ToolBarMenuDockPlus plus) {
designState = plus.getMenuState(); designState = plus.getMenuState();
if (WorkContext.getCurrent().isLocal()) { // if (WorkContext.getCurrent().isLocal()) {
designState += REMOTE; // designState += REMOTE;
} // }
// isRoot = env != null && env.isRoot(); // isRoot = env != null && env.isRoot();
isAuthority = BaseUtils.isAuthorityEditing(); isAuthority = BaseUtils.isAuthorityEditing();
} }

2
designer-base/src/com/fr/design/DesignerEnvManager.java

@ -190,7 +190,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
return; return;
} }
String installHome = StableUtils.getInstallHome(); String installHome = StableUtils.getInstallHome();
if (installHome != null) { if (installHome != null && !".".equals(installHome)) {
String name = Inter.getLocText("FR-Engine_DEFAULT"); String name = Inter.getLocText("FR-Engine_DEFAULT");
String envPath = StableUtils.pathJoin(new String[]{installHome, ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBINF_NAME}); String envPath = StableUtils.pathJoin(new String[]{installHome, ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBINF_NAME});
designerEnvManager.putEnv(name, DesignerWorkspaceInfo.createLocal(name, envPath)); designerEnvManager.putEnv(name, DesignerWorkspaceInfo.createLocal(name, envPath));

10
designer-base/src/com/fr/design/mainframe/DesignerFrame.java

@ -13,7 +13,6 @@ import com.fr.design.actions.core.ActionFactory;
import com.fr.design.constants.UIConstants; import com.fr.design.constants.UIConstants;
import com.fr.design.data.DesignTableDataManager; import com.fr.design.data.DesignTableDataManager;
import com.fr.design.data.datapane.TableDataTreePane; import com.fr.design.data.datapane.TableDataTreePane;
import com.fr.design.env.DesignerWorkspaceInfo;
import com.fr.design.event.DesignerOpenedListener; import com.fr.design.event.DesignerOpenedListener;
import com.fr.design.event.TargetModifiedEvent; import com.fr.design.event.TargetModifiedEvent;
import com.fr.design.event.TargetModifiedListener; import com.fr.design.event.TargetModifiedListener;
@ -54,6 +53,7 @@ import com.fr.stable.StableUtils;
import com.fr.stable.image4j.codec.ico.ICODecoder; import com.fr.stable.image4j.codec.ico.ICODecoder;
import com.fr.stable.project.ProjectConstants; import com.fr.stable.project.ProjectConstants;
import com.fr.workspace.WorkContext; import com.fr.workspace.WorkContext;
import com.fr.workspace.Workspace;
import javax.swing.*; import javax.swing.*;
import javax.swing.border.MatteBorder; import javax.swing.border.MatteBorder;
@ -650,15 +650,15 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
defaultTitleSB.append(" "); defaultTitleSB.append(" ");
// james:标识登录的用户和登录的ENV // james:标识登录的用户和登录的ENV
String envName = DesignerEnvManager.getEnvManager().getCurEnvName(); String envName = DesignerEnvManager.getEnvManager().getCurEnvName();
DesignerWorkspaceInfo env = DesignerEnvManager.getEnvManager().getWorkspaceInfo(envName); Workspace workspace = WorkContext.getCurrent();
if (env != null) { if (workspace != null) {
defaultTitleSB.append(WorkContext.getCurrent().getDescription()); defaultTitleSB.append(workspace.getDescription());
if (editingTemplate != null) { if (editingTemplate != null) {
String path = editingTemplate.getEditingFILE().getPath(); String path = editingTemplate.getEditingFILE().getPath();
if (!editingTemplate.getEditingFILE().exists()) { if (!editingTemplate.getEditingFILE().exists()) {
path = FILEFactory.MEM_PREFIX + path; path = FILEFactory.MEM_PREFIX + path;
} else if (path.startsWith(ProjectConstants.REPORTLETS_NAME)) { } else if (path.startsWith(ProjectConstants.REPORTLETS_NAME)) {
path = env.getPath() + File.separator + path; path = workspace.getPath() + File.separator + path;
} }
defaultTitleSB.append(" " + path); defaultTitleSB.append(" " + path);
} }

121
designer-base/src/com/fr/design/mainframe/TemplatePane.java

@ -29,49 +29,63 @@ import java.awt.event.MouseListener;
//TODO: august TemplatePane和TemplateTreePane最好合并成一个类 //TODO: august TemplatePane和TemplateTreePane最好合并成一个类
public class TemplatePane extends JPanel implements MouseListener { public class TemplatePane extends JPanel implements MouseListener {
private static final long NUM = 1L; private static final long NUM = 1L;
private static int NUM200 = 200; private static int NUM200 = 200;
public static TemplatePane getInstance() { public static TemplatePane getInstance() {
return HOLDER.singleton; return HOLDER.singleton;
} }
private static class HOLDER { private static class HOLDER {
private static TemplatePane singleton = new TemplatePane(); private static TemplatePane singleton = new TemplatePane();
} }
private static final long serialVersionUID = 2108412478281713143L; private static final long serialVersionUID = 2108412478281713143L;
public static final int HEIGHT = 23;// 最好和日志的高度统一 用同一个变量 public static final int HEIGHT = 23;// 最好和日志的高度统一 用同一个变量
private static javax.swing.Icon leftIcon = BaseUtils.readIcon("/com/fr/design/images/docking/left.png"); private static javax.swing.Icon leftIcon = BaseUtils.readIcon("/com/fr/design/images/docking/left.png");
;
private static javax.swing.Icon rightIcon = BaseUtils.readIcon("/com/fr/design/images/docking/right.png"); private static javax.swing.Icon rightIcon = BaseUtils.readIcon("/com/fr/design/images/docking/right.png");
;
private boolean isExpanded = false; private boolean isExpanded = false;
private UIButton editButton; private UIButton editButton;
private UILabel envLabel; private UILabel envLabel;
private TemplatePane() { private TemplatePane() {
super(); super();
this.initComponents(); this.initComponents();
this.setFocusable(true); this.setFocusable(true);
this.addMouseListener(this); this.addMouseListener(this);
isExpanded = DesignerEnvManager.getEnvManager().isTemplateTreePaneExpanded(); isExpanded = DesignerEnvManager.getEnvManager().isTemplateTreePaneExpanded();
// TemplateTreePane.getInstance().setVisible(isExpanded); TemplateTreePane.getInstance().setVisible(isExpanded);
TemplateTreePane.getInstance().setVisible(true); TemplateTreePane.getInstance().setVisible(true);
} }
private void initComponents() { private void initComponents() {
GeneralContext.addEnvChangedListener(new EnvChangedListener() { GeneralContext.addEnvChangedListener(new EnvChangedListener() {
public void envChanged() { public void envChanged() {
setJLabel(DesignerEnvManager.getEnvManager().getCurEnvName()); setJLabel(DesignerEnvManager.getEnvManager().getCurEnvName());
} }
}); });
this.setLayout(new BorderLayout(25, 0)); this.setLayout(new BorderLayout(25, 0));
editButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/control/control-center2.png")) { editButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/control/control-center2.png")) {
private static final long serialVersionUID = NUM; private static final long serialVersionUID = NUM;
@Override @Override
public Point getToolTipLocation(MouseEvent event) { public Point getToolTipLocation(MouseEvent event) {
return new Point(25, 2); return new Point(25, 2);
} }
}; };
@ -83,7 +97,9 @@ public class TemplatePane extends JPanel implements MouseListener {
this.add(new UILabel(" "), BorderLayout.WEST); this.add(new UILabel(" "), BorderLayout.WEST);
this.add(editButton, BorderLayout.EAST); this.add(editButton, BorderLayout.EAST);
editButton.addActionListener(new ActionListener() { editButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) { public void actionPerformed(ActionEvent evt) {
editItems(); editItems();
} }
}); });
@ -92,35 +108,41 @@ public class TemplatePane extends JPanel implements MouseListener {
setJLabel(DesignerEnvManager.getEnvManager().getCurEnvName()); setJLabel(DesignerEnvManager.getEnvManager().getCurEnvName());
this.add(envLabel, BorderLayout.CENTER); this.add(envLabel, BorderLayout.CENTER);
} }
/** /**
* 是否可扩展 * 是否可扩展
* *
* @return 同上 * @return 同上
*/ */
public boolean IsExpanded() { public boolean IsExpanded() {
return this.isExpanded; return this.isExpanded;
} }
public void setExpand(boolean b) { public void setExpand(boolean b) {
this.isExpanded = b; this.isExpanded = b;
this.repaint(); this.repaint();
} }
private boolean envListOkAction(EnvListPane envListPane) { private boolean envListOkAction(EnvListPane envListPane) {
final String selectedName = envListPane.updateEnvManager(); final String selectedName = envListPane.updateEnvManager();
DesignerEnvManager envManager = DesignerEnvManager.getEnvManager(); DesignerEnvManager envManager = DesignerEnvManager.getEnvManager();
DesignerWorkspaceInfo selectedEnv = envManager.getWorkspaceInfo(selectedName); DesignerWorkspaceInfo selectedEnv = envManager.getWorkspaceInfo(selectedName);
GeneralContext.fireEnvWillChangeListener(); GeneralContext.fireEnvWillChangeListener();
try { try {
WorkContext.switchTo(DesignerWorkspaceGenerator.generate(selectedEnv), new WorkContextCallback() { WorkContext.switchTo(DesignerWorkspaceGenerator.generate(selectedEnv), new WorkContextCallback() {
@Override @Override
public void fail() { public void fail() {
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"})); JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"}));
} }
@Override @Override
public void success() { public void success() {
DesignUtils.refreshDesignerFrame(); DesignUtils.refreshDesignerFrame();
} }
}); });
@ -140,61 +162,71 @@ public class TemplatePane extends JPanel implements MouseListener {
} }
return true; return true;
} }
private String getDesignerVersion(DesignerWorkspaceInfo selectedEnv) { private String getDesignerVersion(DesignerWorkspaceInfo selectedEnv) {
// return selectedEnv.getDesignerVersion(); // return selectedEnv.getDesignerVersion();
throw new UnsupportedOperationException("unsupport now"); throw new UnsupportedOperationException("unsupport now");
} }
/** /**
* 编辑items * 编辑items
*/ */
public void editItems() { public void editItems() {
final EnvListPane envListPane = new EnvListPane(); final EnvListPane envListPane = new EnvListPane();
final BasicDialog envListDialog = envListPane.showWindow(SwingUtilities.getWindowAncestor(DesignerContext.getDesignerFrame())); final BasicDialog envListDialog = envListPane.showWindow(SwingUtilities.getWindowAncestor(DesignerContext.getDesignerFrame()));
envListPane.populateEnvManager(envLabel.getText()); envListPane.populateEnvManager(envLabel.getText());
envListDialog.addDialogActionListener(new DialogActionAdapter() { envListDialog.addDialogActionListener(new DialogActionAdapter() {
public void doOk() { public void doOk() {
envListOkAction(envListPane); envListOkAction(envListPane);
} }
public void doCancel() { public void doCancel() {
envListDialog.setVisible(false); envListDialog.setVisible(false);
} }
}); });
envListDialog.setVisible(true); envListDialog.setVisible(true);
} }
private void setJLabel(String name) {
private void setJLabel(String name) {
DesignerWorkspaceInfo config = DesignerEnvManager.getEnvManager().getWorkspaceInfo(name); DesignerWorkspaceInfo config = DesignerEnvManager.getEnvManager().getWorkspaceInfo(name);
switch (config.getType()) { if (config != null) {
case Remote: { switch (config.getType()) {
envLabel.setIcon(IOUtils.readIcon("com/fr/design/images/data/bind/localconnect.png")); case Remote: {
break; envLabel.setIcon(IOUtils.readIcon("com/fr/design/images/data/bind/localconnect.png"));
} break;
case Local: { }
envLabel.setIcon(IOUtils.readIcon("com/fr/design/images/data/bind/distanceconnect.png")); case Local: {
break; envLabel.setIcon(IOUtils.readIcon("com/fr/design/images/data/bind/distanceconnect.png"));
break;
}
} }
} }
envLabel.setText(name); envLabel.setText(name);
envLabel.repaint(); envLabel.repaint();
} }
@Override @Override
public Dimension getPreferredSize() { public Dimension getPreferredSize() {
return new Dimension(250, HEIGHT); return new Dimension(250, HEIGHT);
} }
@Override @Override
public void paintComponent(Graphics g) { public void paintComponent(Graphics g) {
super.paintComponent(g); super.paintComponent(g);
paintBackgroundIcon(g); paintBackgroundIcon(g);
} }
private void paintBackgroundIcon(Graphics g) { private void paintBackgroundIcon(Graphics g) {
int w = this.getWidth(); int w = this.getWidth();
int h = this.getHeight(); int h = this.getHeight();
Graphics2D g2d = (Graphics2D) g; Graphics2D g2d = (Graphics2D) g;
@ -209,9 +241,9 @@ public class TemplatePane extends JPanel implements MouseListener {
g2d.drawLine(w - 1, 2, w - 1, h - 1); g2d.drawLine(w - 1, 2, w - 1, h - 1);
Icon icon = !isExpanded ? leftIcon : rightIcon; Icon icon = !isExpanded ? leftIcon : rightIcon;
icon.paintIcon(this, g2d, 4, 4); icon.paintIcon(this, g2d, 4, 4);
} }
/** /**
* 鼠标点击 * 鼠标点击
* *
@ -219,8 +251,9 @@ public class TemplatePane extends JPanel implements MouseListener {
*/ */
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
} }
/** /**
* 鼠标按下 * 鼠标按下
* *
@ -228,6 +261,7 @@ public class TemplatePane extends JPanel implements MouseListener {
*/ */
@Override @Override
public void mousePressed(MouseEvent e) { public void mousePressed(MouseEvent e) {
if (e.getX() < NUM200) { if (e.getX() < NUM200) {
isExpanded = !isExpanded; isExpanded = !isExpanded;
TemplateTreePane.getInstance().setVisible(isExpanded); TemplateTreePane.getInstance().setVisible(isExpanded);
@ -235,7 +269,7 @@ public class TemplatePane extends JPanel implements MouseListener {
DesignerEnvManager.getEnvManager().setTemplateTreePaneExpanded(isExpanded); DesignerEnvManager.getEnvManager().setTemplateTreePaneExpanded(isExpanded);
} }
} }
/** /**
* 鼠标放开 * 鼠标放开
* *
@ -243,8 +277,9 @@ public class TemplatePane extends JPanel implements MouseListener {
*/ */
@Override @Override
public void mouseReleased(MouseEvent e) { public void mouseReleased(MouseEvent e) {
} }
/** /**
* 鼠标进入 * 鼠标进入
* *
@ -252,8 +287,9 @@ public class TemplatePane extends JPanel implements MouseListener {
*/ */
@Override @Override
public void mouseEntered(MouseEvent e) { public void mouseEntered(MouseEvent e) {
} }
/** /**
* 鼠标离开 * 鼠标离开
* *
@ -261,28 +297,33 @@ public class TemplatePane extends JPanel implements MouseListener {
*/ */
@Override @Override
public void mouseExited(MouseEvent e) { public void mouseExited(MouseEvent e) {
} }
/** /**
* 处理异常 * 处理异常
*/ */
public void dealEvnExceptionWhenStartDesigner() { public void dealEvnExceptionWhenStartDesigner() {
final EnvListPane envListPane = new EnvListPane(); final EnvListPane envListPane = new EnvListPane();
envListPane.populateEnvManager(envLabel.getText()); envListPane.populateEnvManager(envLabel.getText());
BasicDialog envListDialog = envListPane.showWindow(SwingUtilities.getWindowAncestor(DesignerContext.getDesignerFrame())); BasicDialog envListDialog = envListPane.showWindow(SwingUtilities.getWindowAncestor(DesignerContext.getDesignerFrame()));
envListDialog.addDialogActionListener(new DialogActionAdapter() { envListDialog.addDialogActionListener(new DialogActionAdapter() {
public void doOk() { public void doOk() {
if (!envListOkAction(envListPane)) { if (!envListOkAction(envListPane)) {
System.exit(0); System.exit(0);
} }
} }
public void doCancel() { public void doCancel() {
System.exit(0); System.exit(0);
} }
}); });
envListDialog.setVisible(true); envListDialog.setVisible(true);
} }
} }

4
designer-base/src/com/fr/file/FileNodeFILE.java

@ -200,7 +200,7 @@ public class FileNodeFILE implements FILE {
} }
try { try {
return WorkContext.getWorkResource().create(StableUtils.pathJoin(node.getEnvPath(), name)); return WorkContext.getWorkResource().createFile(StableUtils.pathJoin(node.getEnvPath(), name));
} catch (Exception e) { } catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e); FineLoggerFactory.getLogger().error(e.getMessage(), e);
return false; return false;
@ -267,7 +267,7 @@ public class FileNodeFILE implements FILE {
} }
try { try {
return WorkContext.getWorkResource().create(node.getEnvPath()); return WorkContext.getWorkResource().createFile(node.getEnvPath());
} catch (Exception e) { } catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e); FineLoggerFactory.getLogger().error(e.getMessage(), e);
return false; return false;

15
designer-realize/src/com/fr/start/EnvSwitcher.java

@ -13,14 +13,25 @@ import com.fr.workspace.Workspace;
public class EnvSwitcher { public class EnvSwitcher {
public void switch2LastEnv() { public void switch2LastEnv() {
try { try {
String current = DesignerEnvManager.getEnvManager().getCurEnvName(); String current = DesignerEnvManager.getEnvManager().getCurEnvName();
Workspace workspace = DesignerWorkspaceGenerator.generate(DesignerEnvManager.getEnvManager().getWorkspaceInfo(current)); Workspace workspace = DesignerWorkspaceGenerator.generate(DesignerEnvManager.getEnvManager().getWorkspaceInfo(current));
if (workspace == null) {
TemplatePane.getInstance().dealEvnExceptionWhenStartDesigner();
}
WorkContext.switchTo(workspace); WorkContext.switchTo(workspace);
} catch (Exception e) { } catch (Throwable e) {
TemplatePane.getInstance().dealEvnExceptionWhenStartDesigner(); TemplatePane.getInstance().dealEvnExceptionWhenStartDesigner();
} }
} }
/**
* 找不到默认的工作空间时让用户手动选择一个
*/
private Workspace chooseWorkspace() {
return null;
}
} }

Loading…
Cancel
Save