daniel 8 years ago
parent
commit
90fecd965a
  1. 12
      designer/src/com/fr/design/condition/PresentHighlightPane.java
  2. 2
      designer_base/build.gradle
  3. 26
      designer_base/src/com/fr/design/RestartHelper.java
  4. 12
      designer_base/src/com/fr/design/beans/location/MoveUtils.java
  5. 2
      designer_base/src/com/fr/design/widget/btn/ButtonWithHotkeysDetailPane.java
  6. 2
      designer_chart/build.gradle
  7. 3
      designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java
  8. 6
      designer_chart/src/com/fr/design/chart/series/SeriesCondition/LabelBorderAttrPane.java
  9. 2
      designer_chart/src/com/fr/design/chart/series/SeriesCondition/LabelBorderPane.java
  10. 5
      designer_chart/src/com/fr/design/mainframe/chart/ChartEditPane.java
  11. 2
      designer_form/build.gradle
  12. 69
      designer_form/src/com/fr/design/designer/beans/adapters/layout/FRParameterLayoutAdapter.java
  13. 9
      designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java
  14. 2
      designer_form/src/com/fr/design/gui/core/FormWidgetOption.java

12
designer/src/com/fr/design/condition/PresentHighlightPane.java

@ -97,20 +97,20 @@ public class PresentHighlightPane extends ConditionAttrSingleConditionPane<Highl
} }
public void populate(HighlightAction ha) { public void populate(HighlightAction ha) {
int valueIndex = ((PresentHighlightAction)ha).getValueIndex();
Object obj = ((PresentHighlightAction)ha).getValue(); Object obj = ((PresentHighlightAction)ha).getValue();
presentComboBox.setSelectedIndex(valueIndex); present = ((PresentHighlightAction)ha).getPresent();
if(null != obj) { if(null != obj) {
presentComboBox.setSelectedIndex(0);
this.valueEditor.populate(obj); this.valueEditor.populate(obj);
} else if(null != present) {
presentComboBox.setSelectedIndex(1);
this.valueEditor.populate(present);
} }
} }
public HighlightAction update() { public HighlightAction update() {
Object value = this.valueEditor.update();
if (presentComboBox.getSelectedIndex() == 1) { if (presentComboBox.getSelectedIndex() == 1) {
if (value instanceof String) { return new PresentHighlightAction(present);
present = new NormalPresent(this.valueEditor.update());
}
} }
return new PresentHighlightAction(this.valueEditor.update()); return new PresentHighlightAction(this.valueEditor.update());
} }

2
designer_base/build.gradle

@ -53,7 +53,7 @@ task copyFile(type:Copy,dependsOn:compileJava){
task compressJS{ task compressJS{
ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){ ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){
classpath { classpath {
fileset(dir:'../../../finereport-build-stable',includes:'**/*.jar') fileset(dir:'../../../finereport-lib4build-stable',includes:'**/*.jar')
} }
} }
ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false", , charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){ ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false", , charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){

26
designer_base/src/com/fr/design/RestartHelper.java

@ -4,15 +4,11 @@ import com.fr.design.mainframe.DesignerContext;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.general.FRLogger; import com.fr.general.FRLogger;
import com.fr.general.GeneralUtils; import com.fr.general.GeneralUtils;
import com.fr.stable.ArrayUtils; import com.fr.stable.*;
import com.fr.stable.OperatingSystem;
import com.fr.stable.StableUtils; import java.io.*;
import com.fr.stable.StringUtils; import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -153,6 +149,18 @@ public class RestartHelper {
} }
try { try {
try {
File restartLockFile = new File(StableUtils.pathJoin(StableUtils.getInstallHome(), "restart.lock"));
StableUtils.makesureFileExist(restartLockFile);
RandomAccessFile randomAccessFile = new RandomAccessFile(restartLockFile,"rw");
FileChannel restartLockFC = randomAccessFile.getChannel();
FileLock restartLock = restartLockFC.tryLock();
if(restartLock == null) {
FRLogger.getLogger().error("restart lock null!");
}
}catch (Exception e){
FRLogger.getLogger().error(e.getMessage());
}
if (OperatingSystem.isMacOS()) { if (OperatingSystem.isMacOS()) {
restartInMacOS(installHome, filesToBeDelete); restartInMacOS(installHome, filesToBeDelete);
} else { } else {

12
designer_base/src/com/fr/design/beans/location/MoveUtils.java

@ -300,11 +300,13 @@ public class MoveUtils {
findX(px, bounds, left, right, width); findX(px, bounds, left, right, width);
findY(py, bounds, top, bottom, height); findY(py, bounds, top, bottom, height);
if(isIntersects && !isParameterLayout){ if(!isParameterLayout){
isWidgetsIntersects = true; if(isIntersects) {
} isWidgetsIntersects = true;
else{ }
findEquidistantLine(bounds, left, top, height, width); else{
findEquidistantLine(bounds, left, top, height, width);
}
} }
} }
showForbiddenWindow(designer, x, y, isWidgetsIntersects); showForbiddenWindow(designer, x, y, isWidgetsIntersects);

2
designer_base/src/com/fr/design/widget/btn/ButtonWithHotkeysDetailPane.java

@ -32,7 +32,7 @@ public abstract class ButtonWithHotkeysDetailPane<T extends Button> extends Butt
private void initComponents() { private void initComponents() {
JPanel advancedPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Advanced")); JPanel advancedPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Advanced"));
advancedPane.setPreferredSize(new Dimension(600,300)); advancedPane.setPreferredSize(new Dimension(600, 341));
JPanel attrPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel attrPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
attrPane.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 4)); attrPane.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 4));
this.add(advancedPane); this.add(advancedPane);

2
designer_chart/build.gradle

@ -51,7 +51,7 @@ task copyFile(type:Copy,dependsOn:compileJava){
task compressJS{ task compressJS{
ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){ ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){
classpath { classpath {
fileset(dir:'../../../finereport-build-stable',includes:'**/*.jar') fileset(dir:'../../../finereport-lib4build-stable',includes:'**/*.jar')
} }
} }
ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false", , charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){ ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false", , charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){

3
designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java

@ -48,6 +48,9 @@ import java.util.Map;
*/ */
public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraChartDesignClassManagerProvider { public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraChartDesignClassManagerProvider {
private static ClassLoader loader = Thread.currentThread().getContextClassLoader(); private static ClassLoader loader = Thread.currentThread().getContextClassLoader();
private static ChartTypeInterfaceManager classManager = null; private static ChartTypeInterfaceManager classManager = null;

6
designer_chart/src/com/fr/design/chart/series/SeriesCondition/LabelBorderAttrPane.java

@ -24,7 +24,7 @@ public abstract class LabelBorderAttrPane extends ConditionAttrSingleConditionPa
public LabelBorderAttrPane(ConditionAttributesPane conditionAttributesPane, boolean isRemove, String label) { public LabelBorderAttrPane(ConditionAttributesPane conditionAttributesPane, boolean isRemove, String label) {
super(conditionAttributesPane, isRemove); super(conditionAttributesPane, isRemove);
nameLabel = new UILabel(label); nameLabel = new UILabel(label);
linePane = new BorderAttriPane(); linePane = initBorderAttrPane();
if (isRemove) { if (isRemove) {
this.add(nameLabel); this.add(nameLabel);
@ -33,6 +33,10 @@ public abstract class LabelBorderAttrPane extends ConditionAttrSingleConditionPa
this.labelName = label; this.labelName = label;
} }
protected BorderAttriPane initBorderAttrPane(){
return new BorderAttriPane();
}
@Override @Override
public String nameForPopupMenuItem() { public String nameForPopupMenuItem() {
return labelName; return labelName;

2
designer_chart/src/com/fr/design/chart/series/SeriesCondition/LabelBorderPane.java

@ -12,7 +12,7 @@ import com.fr.general.Inter;
*/ */
public class LabelBorderPane extends LabelBorderAttrPane { public class LabelBorderPane extends LabelBorderAttrPane {
private AttrBorder attrBorder = new AttrBorder(); protected AttrBorder attrBorder = new AttrBorder();
public LabelBorderPane(ConditionAttributesPane conditionAttributesPane) { public LabelBorderPane(ConditionAttributesPane conditionAttributesPane) {
super(conditionAttributesPane, true, Inter.getLocText(new String[]{"Border", "Format"})); super(conditionAttributesPane, true, Inter.getLocText(new String[]{"Border", "Format"}));

5
designer_chart/src/com/fr/design/mainframe/chart/ChartEditPane.java

@ -115,6 +115,11 @@ public class ChartEditPane extends BasicPane implements AttributeChange,Prepare4
AbstractChartAttrPane selectedPane = paneList.get(tabsHeaderIconPane.getSelectedIndex()); AbstractChartAttrPane selectedPane = paneList.get(tabsHeaderIconPane.getSelectedIndex());
selectedPane.update(collection); selectedPane.update(collection);
if (!ComparatorUtils.equals(collection, lastCollection)) { if (!ComparatorUtils.equals(collection, lastCollection)) {
//此处画图
Chart chart = collection.getSelectedChart();
chart.demoImgEvent(true);
try { try {
lastCollection = (ChartCollection) collection.clone(); lastCollection = (ChartCollection) collection.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {

2
designer_form/build.gradle

@ -63,7 +63,7 @@ task copyFile(type:Copy,dependsOn:compileJava){
task compressJS{ task compressJS{
ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){ ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){
classpath { classpath {
fileset(dir:'../../../finereport-build-stable',includes:'**/*.jar') fileset(dir:'../../../finereport-lib4build-stable',includes:'**/*.jar')
} }
} }
ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false", charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){ ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false", charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){

69
designer_form/src/com/fr/design/designer/beans/adapters/layout/FRParameterLayoutAdapter.java

@ -1,14 +1,20 @@
package com.fr.design.designer.beans.adapters.layout; package com.fr.design.designer.beans.adapters.layout;
import com.fr.design.beans.GroupModel; import com.fr.design.beans.GroupModel;
import com.fr.design.designer.beans.ConstraintsGroupModel;
import com.fr.design.designer.beans.HoverPainter; import com.fr.design.designer.beans.HoverPainter;
import com.fr.design.designer.beans.painters.FRParameterLayoutPainter; import com.fr.design.designer.beans.painters.FRParameterLayoutPainter;
import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreator;
import com.fr.design.designer.creator.XCreatorUtils;
import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XLayoutContainer;
import com.fr.design.designer.creator.XWParameterLayout; import com.fr.design.designer.creator.XWParameterLayout;
import com.fr.design.form.parameter.RootDesignGroupModel; import com.fr.design.form.parameter.RootDesignGroupModel;
import com.fr.design.utils.ComponentUtils;
import com.fr.design.utils.gui.LayoutUtils;
import com.fr.form.ui.container.WParameterLayout; import com.fr.form.ui.container.WParameterLayout;
import java.awt.*;
/** /**
* 表单参数界面的监听器 * 表单参数界面的监听器
*/ */
@ -39,5 +45,66 @@ public class FRParameterLayoutAdapter extends FRAbsoluteLayoutAdapter {
WParameterLayout wabs = (WParameterLayout)container.toData(); WParameterLayout wabs = (WParameterLayout)container.toData();
wabs.refreshTagList(); wabs.refreshTagList();
} }
/**
* 是否能在指定位置添加组件
*
* @param creator 组件
* @param x 坐标x
* @param y 坐标y
* @return 能则返回true
*/
@Override
public boolean accept(XCreator creator, int x, int y) {
return x >= 0 && y >= 0 && creator.getHeight() <= container.getHeight()
&& creator.getWidth() <= container.getWidth();
}
@Override
protected void addComp(XCreator creator, int x, int y) {
if (XCreatorUtils.getParentXLayoutContainer(creator) != null) {
Rectangle r = ComponentUtils.getRelativeBounds(container);
Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator);
x = creatorRectangle.x - r.x;
y = creatorRectangle.y - r.y;
} else {
int w = creator.getWidth() / 2;
int h = creator.getHeight() / 2;
x = x - w;
y = y - h;
}
fix(creator, x, y);
container.add(creator);
LayoutUtils.layoutRootContainer(container);
}
/**
* 调整组件大小到合适尺寸位置
*
* @param creator 组件
* @param x 坐标x
* @param y 坐标y
*/
@Override
public void fix(XCreator creator, int x, int y) {
if (x < 0) {
x = 0;
} else if (x + creator.getWidth() > container.getWidth()) {
x = container.getWidth() - creator.getWidth();
}
if (y < 0) {
y = 0;
} else if (y + creator.getHeight() > container.getHeight()) {
y = container.getHeight() - creator.getHeight();
}
creator.setLocation(x, y);
}
@Override
public ConstraintsGroupModel getLayoutConstraints(XCreator creator) {
return super.getLayoutConstraints(creator);
}
} }

9
designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java

@ -174,4 +174,13 @@ public class XWParameterLayout extends XWAbsoluteLayout {
public XLayoutContainer getTopLayout() { public XLayoutContainer getTopLayout() {
return this; return this;
} }
/**
* 新增删除拉伸后更新每个组件的BoundsWidget
*
* @param xCreator
*/
@Override
public void updateBoundsWidget(XCreator xCreator) {
}
} }

2
designer_form/src/com/fr/design/gui/core/FormWidgetOption.java

@ -1 +1 @@
package com.fr.design.gui.core; import javax.swing.Icon; import com.fr.base.BaseUtils; import com.fr.form.ui.ElementCaseEditor; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WAbsoluteLayout; import com.fr.form.ui.container.WBorderLayout; import com.fr.form.ui.container.WCardLayout; import com.fr.form.ui.container.WFitLayout; import com.fr.form.ui.container.WHorizontalBoxLayout; import com.fr.form.ui.container.WParameterLayout; import com.fr.form.ui.container.WVerticalBoxLayout; import com.fr.general.Inter; /** * Author : Shockway * Date: 13-6-17 * Time: 上午10:40 */ public class FormWidgetOption extends WidgetOption { /** * 返回名字 * @return 名字 */ @Override public String optionName() { return null; } /** * 返回图标 * @return 图标 */ @Override public Icon optionIcon() { return null; } /** * 组件类 * @return 类 */ @Override public Class<? extends Widget> widgetClass() { return null; } /** * 返回组件 * @return 控件 */ @Override public Widget createWidget() { return null; } /* * 表单容器 */ public static WidgetOption[] getFormContainerInstance() { return new WidgetOption[] { ABSOLUTELAYOUTCONTAINER, BORDERLAYOUTCONTAINER, HORIZONTALBOXLAYOUTCONTAINER, VERTICALBOXLAYOUTCONTAINER, CARDLAYOUTCONTAINER, FITLAYOUTCONTAINER }; } /** * 表单工具栏上的布局 * @return 控件 */ public static WidgetOption[] getFormLayoutInstance() { return new WidgetOption[] {CARDLAYOUTCONTAINER, ABSOLUTELAYOUTCONTAINER}; } public static final WidgetOption ABSOLUTELAYOUTCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_AbsoluteLayout"), BaseUtils.readIcon("/com/fr/web/images/form/resources/layout_absolute.png"), WAbsoluteLayout.class); public static final WidgetOption BORDERLAYOUTCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_BorderLayout"), BaseUtils.readIcon("/com/fr/web/images/form/resources/layout_border.png"), WBorderLayout.class); public static final WidgetOption CARDLAYOUTCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_CardLayout"), BaseUtils.readIcon("/com/fr/web/images/form/resources/card_layout_16.png"), WCardLayout.class); public static final WidgetOption HORIZONTALBOXLAYOUTCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_Layout-HBox"), BaseUtils.readIcon("/com/fr/web/images/form/resources/boxlayout_h_16.png"), WHorizontalBoxLayout.class); public static final WidgetOption VERTICALBOXLAYOUTCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_VerticalBoxLayout"), BaseUtils.readIcon("/com/fr/web/images/form/resources/boxlayout_v_16.png"), WVerticalBoxLayout.class); public static final WidgetOption FITLAYOUTCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Designer-Layout_Adaptive_Layout"), BaseUtils.readIcon("/com/fr/web/images/form/resources/boxlayout_v_16.png"), WFitLayout.class); public static final WidgetOption PARAMETERCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_Para-Body"), BaseUtils.readIcon("/com/fr/web/images/form/resources/layout_parameter.png"), WParameterLayout.class); public static final WidgetOption ELEMENTCASE = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_Form-Report"), BaseUtils.readIcon("/com/fr/web/images/form/resources/report_16.png"), ElementCaseEditor.class); } package com.fr.design.gui.core; import javax.swing.Icon; import com.fr.base.BaseUtils; import com.fr.form.ui.ElementCaseEditor; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WAbsoluteLayout; import com.fr.form.ui.container.WBorderLayout; import com.fr.form.ui.container.WCardLayout; import com.fr.form.ui.container.WFitLayout; import com.fr.form.ui.container.WHorizontalBoxLayout; import com.fr.form.ui.container.WParameterLayout; import com.fr.form.ui.container.WVerticalBoxLayout; import com.fr.general.Inter; /** * Author : Shockway * Date: 13-6-17 * Time: 上午10:40 */ public class FormWidgetOption extends WidgetOption { /** * 返回名字 * @return 名字 */ @Override public String optionName() { return null; } /** * 返回图标 * @return 图标 */ @Override public Icon optionIcon() { return null; } /** * 组件类 * @return 类 */ @Override public Class<? extends Widget> widgetClass() { return null; } /** * 返回组件 * @return 控件 */ @Override public Widget createWidget() { return null; } /* * 表单容器 */ public static WidgetOption[] getFormContainerInstance() { return new WidgetOption[] { ABSOLUTELAYOUTCONTAINER, BORDERLAYOUTCONTAINER, HORIZONTALBOXLAYOUTCONTAINER, VERTICALBOXLAYOUTCONTAINER, CARDLAYOUTCONTAINER, FITLAYOUTCONTAINER }; } /** * 表单工具栏上的布局 * @return 控件 */ public static WidgetOption[] getFormLayoutInstance() { return new WidgetOption[] {CARDLAYOUTCONTAINER/*, ABSOLUTELAYOUTCONTAINER*/}; } public static final WidgetOption ABSOLUTELAYOUTCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_AbsoluteLayout"), BaseUtils.readIcon("/com/fr/web/images/form/resources/layout_absolute.png"), WAbsoluteLayout.class); public static final WidgetOption BORDERLAYOUTCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_BorderLayout"), BaseUtils.readIcon("/com/fr/web/images/form/resources/layout_border.png"), WBorderLayout.class); public static final WidgetOption CARDLAYOUTCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_CardLayout"), BaseUtils.readIcon("/com/fr/web/images/form/resources/card_layout_16.png"), WCardLayout.class); public static final WidgetOption HORIZONTALBOXLAYOUTCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_Layout-HBox"), BaseUtils.readIcon("/com/fr/web/images/form/resources/boxlayout_h_16.png"), WHorizontalBoxLayout.class); public static final WidgetOption VERTICALBOXLAYOUTCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_VerticalBoxLayout"), BaseUtils.readIcon("/com/fr/web/images/form/resources/boxlayout_v_16.png"), WVerticalBoxLayout.class); public static final WidgetOption FITLAYOUTCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Designer-Layout_Adaptive_Layout"), BaseUtils.readIcon("/com/fr/web/images/form/resources/boxlayout_v_16.png"), WFitLayout.class); public static final WidgetOption PARAMETERCONTAINER = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_Para-Body"), BaseUtils.readIcon("/com/fr/web/images/form/resources/layout_parameter.png"), WParameterLayout.class); public static final WidgetOption ELEMENTCASE = WidgetOptionFactory.createByWidgetClass(Inter .getLocText("FR-Designer_Form-Report"), BaseUtils.readIcon("/com/fr/web/images/form/resources/report_16.png"), ElementCaseEditor.class); }
Loading…
Cancel
Save