Browse Source

REPORT-6558 组件叠加优化交互验收=>顶部工具栏中的按钮状态,与右侧控件树的按钮状态一致;form,body,不可编辑

plough 7 years ago
parent
commit
3b29cb9066
  1. 13
      designer_base/src/com/fr/design/event/DesignerOpenedListener.java
  2. 30
      designer_base/src/com/fr/design/mainframe/DesignerFrame.java
  3. 2
      designer_base/src/com/fr/start/BaseDesigner.java
  4. 9
      designer_form/src/com/fr/design/designer/beans/actions/CopyAction.java
  5. 10
      designer_form/src/com/fr/design/designer/beans/actions/CutAction.java
  6. 10
      designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java
  7. 27
      designer_form/src/com/fr/design/mainframe/FormDesigner.java

13
designer_base/src/com/fr/design/event/DesignerOpenedListener.java

@ -0,0 +1,13 @@
package com.fr.design.event;
import java.util.EventListener;
/**
* Created by plough on 2018/1/19.
*/
public interface DesignerOpenedListener extends EventListener {
/**
* Invoked when the target of the listener has changed the rpt content.
*/
public void designerOpened();
}

30
designer_base/src/com/fr/design/mainframe/DesignerFrame.java

@ -14,6 +14,7 @@ import com.fr.design.actions.core.ActionFactory;
import com.fr.design.constants.UIConstants;
import com.fr.design.data.DesignTableDataManager;
import com.fr.design.data.datapane.TableDataTreePane;
import com.fr.design.event.DesignerOpenedListener;
import com.fr.design.event.TargetModifiedEvent;
import com.fr.design.event.TargetModifiedListener;
import com.fr.design.file.*;
@ -92,6 +93,10 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
private static final Integer TOP_LAYER = new Integer((200));
private static java.util.List<App<?>> appList = new java.util.ArrayList<App<?>>();
private List<DesignerOpenedListener> designerOpenedListenerList = new ArrayList<>();
private boolean isDesignerOpened = false; // 加一个标记。可以通过它来判断设计器是否初始化完成
private ToolBarMenuDock ad;
private DesktopCardPane centerTemplateCardPane;
@ -284,6 +289,31 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
}
}
/**
* 注册"设计器初始化完成"的监听
*/
public void addDesignerOpenedListener(DesignerOpenedListener listener) {
designerOpenedListenerList.add(listener);
}
/**
* 触发"设计器初始化完成"事件
*/
public void fireDesignerOpened() {
for (DesignerOpenedListener listener : designerOpenedListenerList) {
listener.designerOpened();
}
isDesignerOpened = true;
}
/**
* 判断设计器是否初始化完成
*/
public boolean isDesignerOpened() {
return isDesignerOpened;
}
protected DesktopCardPane getCenterTemplateCardPane() {
return centerTemplateCardPane;
}

2
designer_base/src/com/fr/start/BaseDesigner.java

@ -138,6 +138,8 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
TemplateTreePane.getInstance().getTemplateFileTree().refresh();
}
df.fireDesignerOpened();
splashWindow.setVisible(false);
splashWindow.dispose();

9
designer_form/src/com/fr/design/designer/beans/actions/CopyAction.java

@ -29,4 +29,13 @@ public class CopyAction extends FormWidgetEditAction {
return false;
}
@Override
public void update() {
FormDesigner designer = getEditingComponent();
if (designer == null) {
this.setEnabled(false);
return;
}
this.setEnabled(!designer.isRootSelected());
}
}

10
designer_form/src/com/fr/design/designer/beans/actions/CutAction.java

@ -30,4 +30,14 @@ public class CutAction extends FormWidgetEditAction {
return editPane.cut();
}
@Override
public void update() {
FormDesigner designer = getEditingComponent();
if (designer == null) {
this.setEnabled(false);
return;
}
this.setEnabled(!designer.isRootSelected());
}
}

10
designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java

@ -58,4 +58,14 @@ public class FormDeleteAction extends FormWidgetEditAction {
return false;
}
@Override
public void update() {
FormDesigner designer = getEditingComponent();
if (designer == null) {
this.setEnabled(false);
return;
}
this.setEnabled(!designer.isRootSelected());
}
}

27
designer_form/src/com/fr/design/mainframe/FormDesigner.java

@ -21,6 +21,7 @@ import com.fr.design.designer.beans.models.SelectionModel;
import com.fr.design.designer.beans.models.StateModel;
import com.fr.design.designer.creator.*;
import com.fr.design.designer.properties.FormWidgetAuthorityEditPane;
import com.fr.design.event.DesignerOpenedListener;
import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.form.util.XCreatorConstants;
import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus;
@ -678,6 +679,13 @@ public class FormDesigner extends TargetComponent<Form> implements TreeSelection
}
});
DesignerContext.getDesignerFrame().addDesignerOpenedListener(new DesignerOpenedListener() {
@Override
public void designerOpened() {
setToolbarButtons();
}
});
}
/**
@ -1039,8 +1047,21 @@ public class FormDesigner extends TargetComponent<Form> implements TreeSelection
showAuthorityEditPane();
}
//先选中再检查
setToolbarButtons(paths.length == 1 && tree.getSelectionPath().getParentPath() == null);
setToolbarButtons();
}
}
/**
* 是否选中了自适应布局或底层form
*/
public boolean isRootSelected() {
ComponentTree tree = FormHierarchyTreePane.getInstance().getComponentTree();
TreePath[] paths = tree.getSelectionPaths();
if (paths == null) {
return true;
}
boolean isForm = paths.length == 1 && tree.getSelectionPath().getParentPath() == null;
return isForm || isRoot(getSelectionModel().getSelection().getSelectedCreator());
}
/**
@ -1073,9 +1094,9 @@ public class FormDesigner extends TargetComponent<Form> implements TreeSelection
}
protected void setToolbarButtons(boolean flag) {
protected void setToolbarButtons() {
//自适应布局和底层都不能删除
DesignerContext.getDesignerFrame().checkCombineUp(!(isRoot(getSelectionModel().getSelection().getSelectedCreator()) || flag), NAME_ARRAY_LIST);
DesignerContext.getDesignerFrame().checkCombineUp(!isRootSelected(), NAME_ARRAY_LIST);
}
private void invalidateLayout() {

Loading…
Cancel
Save