diff --git a/designer-base/src/main/java/com/fr/design/actions/community/BugAction.java b/designer-base/src/main/java/com/fr/design/actions/community/BugAction.java
index a162571002..bb2de54ba2 100644
--- a/designer-base/src/main/java/com/fr/design/actions/community/BugAction.java
+++ b/designer-base/src/main/java/com/fr/design/actions/community/BugAction.java
@@ -17,7 +17,7 @@ public class BugAction extends AbstractDesignerSSO {
@Override
public String getJumpUrl() {
- return CloudCenter.getInstance().acquireUrlByKind("bbs.bugs", "http://bbs.fanruan.com/forum-156-1.html");
+ return CloudCenter.getInstance().acquireUrlByKind("bbs.bugs", "https://service.fanruan.com/PF/FR/feedback");
}
public static final MenuKeySet BUG = new MenuKeySet() {
diff --git a/designer-base/src/main/java/com/fr/design/actions/community/NeedAction.java b/designer-base/src/main/java/com/fr/design/actions/community/NeedAction.java
index c8b2ccdae1..4a9b80a9b9 100644
--- a/designer-base/src/main/java/com/fr/design/actions/community/NeedAction.java
+++ b/designer-base/src/main/java/com/fr/design/actions/community/NeedAction.java
@@ -18,7 +18,7 @@ public class NeedAction extends AbstractDesignerSSO {
@Override
public String getJumpUrl() {
- return CloudCenter.getInstance().acquireUrlByKind("bbs.needs", "http://bbs.fanruan.com/forum-56-1.html");
+ return CloudCenter.getInstance().acquireUrlByKind("bbs.needs", "https://service.fanruan.com/PF/FR/feedback");
}
public static final MenuKeySet NEED = new MenuKeySet() {
diff --git a/designer-base/src/main/java/com/fr/design/actions/community/StudyPlanAction.java b/designer-base/src/main/java/com/fr/design/actions/community/StudyPlanAction.java
new file mode 100644
index 0000000000..d0dcc4195d
--- /dev/null
+++ b/designer-base/src/main/java/com/fr/design/actions/community/StudyPlanAction.java
@@ -0,0 +1,17 @@
+package com.fr.design.actions.community;
+
+import com.fr.design.i18n.Toolkit;
+import com.fr.design.login.AbstractDesignerSSO;
+import com.fr.general.CloudCenter;
+
+public class StudyPlanAction extends AbstractDesignerSSO {
+ public StudyPlanAction() {
+ this.setName(Toolkit.i18nText("Fine-Design_Study_Plan"));
+ this.setSmallIcon("/com/fr/design/images/bbs/studyPlan");
+ }
+
+ @Override
+ public String getJumpUrl() {
+ return CloudCenter.getInstance().acquireUrlByKind("bbs.studyPlan", "https://edu.fanruan.com/studypath/finereport");
+ }
+}
diff --git a/designer-base/src/main/java/com/fr/design/gui/controlpane/UIListGroupControlPane.java b/designer-base/src/main/java/com/fr/design/gui/controlpane/UIListGroupControlPane.java
index 6ec5f496a6..063491f884 100644
--- a/designer-base/src/main/java/com/fr/design/gui/controlpane/UIListGroupControlPane.java
+++ b/designer-base/src/main/java/com/fr/design/gui/controlpane/UIListGroupControlPane.java
@@ -125,7 +125,9 @@ public abstract class UIListGroupControlPane extends UIControlPane implements Li
for (int i = 0, size = widget.getListenerSize(); i < size; i++) {
Listener listener = widget.getListener(i);
if (!listener.isDefault()) {
- nameObjectList.add(i, new NameObject(switchLang(listener.getEventName()) + (i + 1), listener));
+ String eventName = switchLang(listener.getEventName()) + (nameObjectList.size() + 1);
+ NameObject nameObject = new NameObject(eventName, listener);
+ nameObjectList.add(nameObject);
}
}
populate(getHelper().processCatalog(nameObjectList));
diff --git a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
index cfc4483c95..5043e8307b 100644
--- a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
+++ b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
@@ -17,6 +17,7 @@ import com.fr.design.actions.community.FacebookFansAction;
import com.fr.design.actions.community.NeedAction;
import com.fr.design.actions.community.QuestionAction;
import com.fr.design.actions.community.SignAction;
+import com.fr.design.actions.community.StudyPlanAction;
import com.fr.design.actions.community.TechSolutionAction;
import com.fr.design.actions.community.TechSupportAction;
import com.fr.design.actions.community.TemplateStoreAction;
@@ -597,6 +598,7 @@ public abstract class ToolBarMenuDock {
shortCuts.add(new TutorialAction());
}
}, SupportLocaleImpl.TUTORIAL_COMMUNITY);
+ shortCuts.add(new StudyPlanAction());
shortCuts.add(new QuestionAction());
shortCuts.add(new TechSolutionAction());
diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/studyPlan.png b/designer-base/src/main/resources/com/fr/design/images/bbs/studyPlan.png
new file mode 100644
index 0000000000..1a27244653
Binary files /dev/null and b/designer-base/src/main/resources/com/fr/design/images/bbs/studyPlan.png differ
diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/studyPlan_normal.svg b/designer-base/src/main/resources/com/fr/design/images/bbs/studyPlan_normal.svg
new file mode 100644
index 0000000000..0237b2e459
--- /dev/null
+++ b/designer-base/src/main/resources/com/fr/design/images/bbs/studyPlan_normal.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/ArrangementType.java b/designer-form/src/main/java/com/fr/design/mainframe/ArrangementType.java
new file mode 100644
index 0000000000..58f4b34643
--- /dev/null
+++ b/designer-form/src/main/java/com/fr/design/mainframe/ArrangementType.java
@@ -0,0 +1,33 @@
+package com.fr.design.mainframe;
+
+public enum ArrangementType {
+ LEFT_ALIGN(0),
+ RIGHT_ALIGN(1),
+ TOP_ALIGN(2),
+ BOTTOM_ALIGN(3),
+ HORIZONTAL_CENTER_ALIGN(4),
+ VERTICAL_CENTER_ALIGN(5),
+ HORIZONTAL_AUTO_DISTRIBUTION(6),
+ HORIZONTAL_MANUAL_DISTRIBUTION(7),
+ VERTICAL_AUTO_DISTRIBUTION(8),
+ VERTICAL_MANUAL_DISTRIBUTION(9);
+
+ private int type;
+
+ ArrangementType(int type) {
+ this.type = type;
+ }
+
+ public int getType() {
+ return this.type;
+ }
+
+ public static ArrangementType parse(int type) {
+ for (ArrangementType arrangementType : ArrangementType.values()) {
+ if (arrangementType.getType() == type) {
+ return arrangementType;
+ }
+ }
+ return LEFT_ALIGN;
+ }
+}
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java
index d8680e4ad1..66dc972c42 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java
@@ -16,6 +16,7 @@ import com.fr.design.actions.core.WorkBookSupportable;
import com.fr.design.actions.file.export.EmbeddedFormExportExportAction;
import com.fr.design.base.mode.DesignModeContext;
import com.fr.design.cell.FloatElementsProvider;
+import com.fr.design.constants.TableDataConstants;
import com.fr.design.data.datapane.TableDataTreePane;
import com.fr.design.designer.TargetComponent;
import com.fr.design.designer.beans.actions.CopyAction;
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/MultiSelectionArrangement.java b/designer-form/src/main/java/com/fr/design/mainframe/MultiSelectionArrangement.java
index 49dbc8c974..3ffe7d94af 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/MultiSelectionArrangement.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/MultiSelectionArrangement.java
@@ -15,67 +15,103 @@ import java.util.Comparator;
import java.util.List;
public class MultiSelectionArrangement {
+ private static final int DEFAULT_GAP = 10;
+
private FormDesigner designer;
- private XLayoutContainer parent; // 当前选中的那些组件所在父容器
private List selectedCreators;
private Rectangle rec;
public MultiSelectionArrangement(FormDesigner designer) {
this.designer = designer;
- update();
}
- public void leftAlign() {
+ public void doArrangement(ArrangementType type) {
+ doArrangement(type, DEFAULT_GAP);
+ }
+
+ public void doArrangement(ArrangementType type, int gap) {
+ updatePosition();
+ switch (type) {
+ case RIGHT_ALIGN:
+ rightAlign();
+ break;
+ case TOP_ALIGN:
+ topAlign();
+ break;
+ case BOTTOM_ALIGN:
+ bottomAlign();
+ break;
+ case HORIZONTAL_CENTER_ALIGN:
+ horizontalCenterAlign();
+ break;
+ case VERTICAL_CENTER_ALIGN:
+ verticalCenterAlign();
+ break;
+ case HORIZONTAL_AUTO_DISTRIBUTION:
+ horizontalAutoDistribution();
+ break;
+ case HORIZONTAL_MANUAL_DISTRIBUTION:
+ horizontalManualDistribution(gap);
+ break;
+ case VERTICAL_AUTO_DISTRIBUTION:
+ verticalAutoDistribution();
+ break;
+ case VERTICAL_MANUAL_DISTRIBUTION:
+ verticalManualDistribution(gap);
+ break;
+ case LEFT_ALIGN:
+ default:
+ leftAlign();
+ break;
+ }
+ updateModel();
+ }
+
+ private void leftAlign() {
for (XCreator creator : selectedCreators) {
creator.setLocation(rec.x, creator.getY());
}
- update();
}
- public void rightAlign() {
+ private void rightAlign() {
for (XCreator creator : selectedCreators) {
creator.setLocation(rec.x + rec.width - creator.getWidth(), creator.getY());
}
- update();
}
- public void topAlign() {
+ private void topAlign() {
for (XCreator creator : selectedCreators) {
creator.setLocation(creator.getX(), rec.y);
}
- update();
}
- public void bottomAlign() {
+ private void bottomAlign() {
for (XCreator creator : selectedCreators) {
creator.setLocation(creator.getX(), rec.y + rec.height - creator.getHeight());
}
- update();
}
- public void horizontalCenterAlign() {
+ private void horizontalCenterAlign() {
for (XCreator creator : selectedCreators) {
creator.setLocation(rec.x + rec.width / 2 - creator.getWidth() / 2, creator.getY());
}
- update();
}
- public void verticalCenterAlign() {
+ private void verticalCenterAlign() {
for (XCreator creator : selectedCreators) {
creator.setLocation(creator.getX(), rec.y + rec.height / 2 - creator.getHeight() / 2);
}
- update();
}
// 水平分布,自动,间距由selectedCreators和border共同计算而来
- public void horizontalAutoDistribution() {
+ private void horizontalAutoDistribution() {
sortHorizontal();
int[] gaps = calculateHorizontalGaps();
horizontalDistribution(gaps);
}
// 水平分布,手动,传入一个间距,排列selectedCreators
- public void horizontalManualDistribution(int gap) {
+ private void horizontalManualDistribution(int gap) {
sortHorizontal();
reSizeRecByHorizontal(gap);
horizontalDistribution(fillGaps(gap, selectedCreators.size() - 1));
@@ -87,7 +123,6 @@ public class MultiSelectionArrangement {
XCreator preCreator = selectedCreators.get(i - 1);
creator.setLocation(preCreator.getX() + preCreator.getWidth() + gaps[i - 1], creator.getY());
}
- update();
}
private void reSizeRecByHorizontal(int gap) {
@@ -145,13 +180,13 @@ public class MultiSelectionArrangement {
return calculateIntegerGaps(distanceBetweenHeadAndTailCreators - sum, gapCount);
}
- public void verticalAutoDistribution() {
+ private void verticalAutoDistribution() {
sortVertical();
int[] gaps = calculateVerticalGaps();
verticalDistribution(gaps);
}
- public void verticalManualDistribution(int gap) {
+ private void verticalManualDistribution(int gap) {
sortVertical();
reSizeRecByVertical(gap);
verticalDistribution(fillGaps(gap, selectedCreators.size() - 1));
@@ -163,7 +198,6 @@ public class MultiSelectionArrangement {
XCreator preCreator = selectedCreators.get(i - 1);
creator.setLocation(creator.getX(), preCreator.getY() + preCreator.getHeight() + gaps[i - 1]);
}
- update();
}
private void reSizeRecByVertical(int gap) {
@@ -252,12 +286,15 @@ public class MultiSelectionArrangement {
return gaps;
}
- private void update() {
+ private void updatePosition() {
FormSelection selection = designer.getSelectionModel().getSelection();
this.selectedCreators = Arrays.asList(selection.getSelectedCreators());
this.rec = selection.getSelctionBounds();
- this.parent = getParent(selection.getSelectedCreator());
+ }
+ private void updateModel() {
+ FormSelection selection = designer.getSelectionModel().getSelection();
+ XLayoutContainer parent = getParent(selection.getSelectedCreator());
if (parent != null) {
// 这里要修改修改engine里面的对象才能成功保存,光修改设计器对象没用
WLayout wabs = parent.toData();
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/AbstractMultiSelectionArrangementButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/AbstractMultiSelectionArrangementButton.java
index dc268f4c5b..9474295049 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/AbstractMultiSelectionArrangementButton.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/AbstractMultiSelectionArrangementButton.java
@@ -5,6 +5,9 @@ import com.fr.design.event.UIObserverListener;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.mainframe.MultiSelectionArrangement;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
public abstract class AbstractMultiSelectionArrangementButton extends UIButton implements MultiSelectionArrangementButton, UIObserver {
private static final long serialVersionUID = -2114423583742242771L;
protected MultiSelectionArrangement arrangement;
@@ -29,4 +32,15 @@ public abstract class AbstractMultiSelectionArrangementButton extends UIButton i
public boolean shouldResponseChangeListener() {
return true;
}
+
+ @Override
+ public ActionListener getActionListener() {
+ return new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ arrangement.doArrangement(getArrangementType());
+ uiObserverListener.doChange();
+ }
+ };
+ }
}
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/BottomAlignButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/BottomAlignButton.java
index 99bf3a6c3a..97974298a5 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/BottomAlignButton.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/BottomAlignButton.java
@@ -1,14 +1,15 @@
package com.fr.design.mainframe.widget.arrangement.buttons;
import com.fr.design.i18n.Toolkit;
+import com.fr.design.mainframe.ArrangementType;
import com.fr.design.mainframe.MultiSelectionArrangement;
import com.fr.general.IOUtils;
import javax.swing.Icon;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
public class BottomAlignButton extends AbstractMultiSelectionArrangementButton {
+ private static final long serialVersionUID = 2397455240682353024L;
+
public BottomAlignButton(MultiSelectionArrangement arrangement) {
super(arrangement);
}
@@ -24,13 +25,7 @@ public class BottomAlignButton extends AbstractMultiSelectionArrangementButton {
}
@Override
- public ActionListener getActionListener() {
- return new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- arrangement.bottomAlign();
- uiObserverListener.doChange();
- }
- };
+ public ArrangementType getArrangementType() {
+ return ArrangementType.BOTTOM_ALIGN;
}
}
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalCenterButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalCenterButton.java
index 6dc9c09b4a..ec8f315df2 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalCenterButton.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalCenterButton.java
@@ -1,14 +1,15 @@
package com.fr.design.mainframe.widget.arrangement.buttons;
import com.fr.design.i18n.Toolkit;
+import com.fr.design.mainframe.ArrangementType;
import com.fr.design.mainframe.MultiSelectionArrangement;
import com.fr.general.IOUtils;
import javax.swing.Icon;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
public class HorizontalCenterButton extends AbstractMultiSelectionArrangementButton {
+ private static final long serialVersionUID = 6290178236460051049L;
+
public HorizontalCenterButton(MultiSelectionArrangement arrangement) {
super(arrangement);
}
@@ -24,13 +25,7 @@ public class HorizontalCenterButton extends AbstractMultiSelectionArrangementBut
}
@Override
- public ActionListener getActionListener() {
- return new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- arrangement.horizontalCenterAlign();
- uiObserverListener.doChange();
- }
- };
+ public ArrangementType getArrangementType() {
+ return ArrangementType.HORIZONTAL_CENTER_ALIGN;
}
}
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalDistributionButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalDistributionButton.java
index 0a0e225fc6..0702248ed4 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalDistributionButton.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalDistributionButton.java
@@ -1,14 +1,15 @@
package com.fr.design.mainframe.widget.arrangement.buttons;
import com.fr.design.i18n.Toolkit;
+import com.fr.design.mainframe.ArrangementType;
import com.fr.design.mainframe.MultiSelectionArrangement;
import com.fr.general.IOUtils;
import javax.swing.Icon;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
public class HorizontalDistributionButton extends AbstractMultiSelectionArrangementButton {
+ private static final long serialVersionUID = 5052092252720664954L;
+
public HorizontalDistributionButton(MultiSelectionArrangement arrangement) {
super(arrangement);
}
@@ -24,13 +25,7 @@ public class HorizontalDistributionButton extends AbstractMultiSelectionArrangem
}
@Override
- public ActionListener getActionListener() {
- return new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- arrangement.horizontalAutoDistribution();
- uiObserverListener.doChange();
- }
- };
+ public ArrangementType getArrangementType() {
+ return ArrangementType.HORIZONTAL_AUTO_DISTRIBUTION;
}
}
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/LeftAlignButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/LeftAlignButton.java
index 20a25a87cb..02a6a2c796 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/LeftAlignButton.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/LeftAlignButton.java
@@ -1,14 +1,15 @@
package com.fr.design.mainframe.widget.arrangement.buttons;
import com.fr.design.i18n.Toolkit;
+import com.fr.design.mainframe.ArrangementType;
import com.fr.design.mainframe.MultiSelectionArrangement;
import com.fr.general.IOUtils;
import javax.swing.Icon;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
public class LeftAlignButton extends AbstractMultiSelectionArrangementButton {
+ private static final long serialVersionUID = -8177637788632733710L;
+
public LeftAlignButton(MultiSelectionArrangement arrangement) {
super(arrangement);
}
@@ -24,13 +25,7 @@ public class LeftAlignButton extends AbstractMultiSelectionArrangementButton {
}
@Override
- public ActionListener getActionListener() {
- return new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- arrangement.leftAlign();
- uiObserverListener.doChange();
- }
- };
+ public ArrangementType getArrangementType() {
+ return ArrangementType.LEFT_ALIGN;
}
}
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/MultiSelectionArrangementButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/MultiSelectionArrangementButton.java
index 99b7635708..96f5765988 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/MultiSelectionArrangementButton.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/MultiSelectionArrangementButton.java
@@ -1,5 +1,7 @@
package com.fr.design.mainframe.widget.arrangement.buttons;
+import com.fr.design.mainframe.ArrangementType;
+
import javax.swing.Icon;
import java.awt.event.ActionListener;
@@ -9,4 +11,6 @@ public interface MultiSelectionArrangementButton {
String getTipText();
ActionListener getActionListener();
+
+ ArrangementType getArrangementType();
}
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/RightAlignButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/RightAlignButton.java
index 5fac70bd7a..1b047b6ba8 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/RightAlignButton.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/RightAlignButton.java
@@ -1,14 +1,15 @@
package com.fr.design.mainframe.widget.arrangement.buttons;
import com.fr.design.i18n.Toolkit;
+import com.fr.design.mainframe.ArrangementType;
import com.fr.design.mainframe.MultiSelectionArrangement;
import com.fr.general.IOUtils;
import javax.swing.Icon;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
public class RightAlignButton extends AbstractMultiSelectionArrangementButton {
+ private static final long serialVersionUID = -8698936349956288409L;
+
public RightAlignButton(MultiSelectionArrangement arrangement) {
super(arrangement);
}
@@ -24,13 +25,7 @@ public class RightAlignButton extends AbstractMultiSelectionArrangementButton {
}
@Override
- public ActionListener getActionListener() {
- return new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- arrangement.rightAlign();
- uiObserverListener.doChange();
- }
- };
+ public ArrangementType getArrangementType() {
+ return ArrangementType.RIGHT_ALIGN;
}
}
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/TopAlignButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/TopAlignButton.java
index ebb2c4d21a..0adfb9378e 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/TopAlignButton.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/TopAlignButton.java
@@ -1,14 +1,15 @@
package com.fr.design.mainframe.widget.arrangement.buttons;
import com.fr.design.i18n.Toolkit;
+import com.fr.design.mainframe.ArrangementType;
import com.fr.design.mainframe.MultiSelectionArrangement;
import com.fr.general.IOUtils;
import javax.swing.Icon;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
public class TopAlignButton extends AbstractMultiSelectionArrangementButton {
+ private static final long serialVersionUID = 2896267783075870924L;
+
public TopAlignButton(MultiSelectionArrangement arrangement) {
super(arrangement);
}
@@ -24,13 +25,7 @@ public class TopAlignButton extends AbstractMultiSelectionArrangementButton {
}
@Override
- public ActionListener getActionListener() {
- return new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- arrangement.topAlign();
- uiObserverListener.doChange();
- }
- };
+ public ArrangementType getArrangementType() {
+ return ArrangementType.TOP_ALIGN;
}
}
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalCenterButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalCenterButton.java
index 9898f9002c..4fb8b62a28 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalCenterButton.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalCenterButton.java
@@ -1,12 +1,11 @@
package com.fr.design.mainframe.widget.arrangement.buttons;
import com.fr.design.i18n.Toolkit;
+import com.fr.design.mainframe.ArrangementType;
import com.fr.design.mainframe.MultiSelectionArrangement;
import com.fr.general.IOUtils;
import javax.swing.Icon;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
public class VerticalCenterButton extends AbstractMultiSelectionArrangementButton {
public VerticalCenterButton(MultiSelectionArrangement arrangement) {
@@ -24,13 +23,7 @@ public class VerticalCenterButton extends AbstractMultiSelectionArrangementButto
}
@Override
- public ActionListener getActionListener() {
- return new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- arrangement.verticalCenterAlign();
- uiObserverListener.doChange();
- }
- };
+ public ArrangementType getArrangementType() {
+ return ArrangementType.VERTICAL_CENTER_ALIGN;
}
}
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalDistributionButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalDistributionButton.java
index 50ec6ac894..76dcf9427a 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalDistributionButton.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalDistributionButton.java
@@ -1,12 +1,11 @@
package com.fr.design.mainframe.widget.arrangement.buttons;
import com.fr.design.i18n.Toolkit;
+import com.fr.design.mainframe.ArrangementType;
import com.fr.design.mainframe.MultiSelectionArrangement;
import com.fr.general.IOUtils;
import javax.swing.Icon;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
public class VerticalDistributionButton extends AbstractMultiSelectionArrangementButton {
public VerticalDistributionButton(MultiSelectionArrangement arrangement) {
@@ -24,13 +23,7 @@ public class VerticalDistributionButton extends AbstractMultiSelectionArrangemen
}
@Override
- public ActionListener getActionListener() {
- return new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- arrangement.verticalAutoDistribution();
- uiObserverListener.doChange();
- }
- };
+ public ArrangementType getArrangementType() {
+ return ArrangementType.VERTICAL_AUTO_DISTRIBUTION;
}
}
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormMultiWidgetCardPane.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormMultiWidgetCardPane.java
index ffd2a0f74e..cf59b595c5 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormMultiWidgetCardPane.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormMultiWidgetCardPane.java
@@ -9,6 +9,7 @@ import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
+import com.fr.design.mainframe.ArrangementType;
import com.fr.design.mainframe.FormDesigner;
import com.fr.design.mainframe.MultiSelectionArrangement;
import com.fr.design.mainframe.widget.arrangement.buttons.BottomAlignButton;
@@ -186,9 +187,9 @@ public class FormMultiWidgetCardPane extends FormWidgetCardPane {
int gap = (int) Math.floor(Float.parseFloat(text));
numberField.setValue(gap);
if (isVertical) {
- arrangement.verticalManualDistribution(gap);
+ arrangement.doArrangement(ArrangementType.VERTICAL_MANUAL_DISTRIBUTION, gap);
} else {
- arrangement.horizontalManualDistribution(gap);
+ arrangement.doArrangement(ArrangementType.HORIZONTAL_MANUAL_DISTRIBUTION, gap);
}
attributeChanged();
}
diff --git a/designer-realize/src/main/java/com/fr/start/preload/ImagePreLoader.java b/designer-realize/src/main/java/com/fr/start/preload/ImagePreLoader.java
index 138e7df2bb..24d23565c0 100644
--- a/designer-realize/src/main/java/com/fr/start/preload/ImagePreLoader.java
+++ b/designer-realize/src/main/java/com/fr/start/preload/ImagePreLoader.java
@@ -175,6 +175,7 @@ public class ImagePreLoader {
"/com/fr/design/images/bbs/center_normal.svg",
"/com/fr/design/images/bbs/sign_normal.svg",
"/com/fr/design/images/bbs/facebook_normal.svg",
+ "/com/fr/design/images/bbs/studyPlan_normal.svg",
"/com/fr/design/images/update/update_new_normal.svg",
"com/fr/design/images/signature.png",
"com/fr/design/images/m_file/switch.png",