Browse Source

无任务代码调整

master
yaoh.wu 8 years ago
parent
commit
cc99e7d54f
  1. 87
      designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java

87
designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java

@ -42,19 +42,19 @@ public class XWAbsoluteLayout extends XLayoutContainer {
//由于屏幕分辨率不同,界面上的容器大小可能不是默认的100%,此时拖入组件时,保存的大小按照100%时的计算 //由于屏幕分辨率不同,界面上的容器大小可能不是默认的100%,此时拖入组件时,保存的大小按照100%时的计算
protected double containerPercent = 1.0; protected double containerPercent = 1.0;
private HashMap<Connector,XConnector> xConnectorMap; private HashMap<Connector, XConnector> xConnectorMap;
public XWAbsoluteLayout() { public XWAbsoluteLayout() {
this(new WAbsoluteLayout(),new Dimension()); this(new WAbsoluteLayout(), new Dimension());
} }
public XWAbsoluteLayout(WAbsoluteLayout widget) { public XWAbsoluteLayout(WAbsoluteLayout widget) {
this(widget,new Dimension()); this(widget, new Dimension());
} }
public XWAbsoluteLayout(WAbsoluteLayout widget, Dimension initSize) { public XWAbsoluteLayout(WAbsoluteLayout widget, Dimension initSize) {
super(widget, initSize); super(widget, initSize);
this.xConnectorMap = new HashMap<Connector,XConnector>(); this.xConnectorMap = new HashMap<Connector, XConnector>();
Connector connector; Connector connector;
for (int i = 0; i < widget.connectorCount(); i++) { for (int i = 0; i < widget.connectorCount(); i++) {
connector = widget.getConnectorIndex(i); connector = widget.getConnectorIndex(i);
@ -75,17 +75,18 @@ public class XWAbsoluteLayout extends XLayoutContainer {
} }
//根据屏幕大小来确定显示的百分比, 1440*900默认100%, 1366*768缩放90% //根据屏幕大小来确定显示的百分比, 1440*900默认100%, 1366*768缩放90%
private void initPercent(WAbsoluteLayout widget){ private void initPercent(WAbsoluteLayout widget) {
Toolkit toolkit = Toolkit.getDefaultToolkit(); Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension scrnsize = toolkit.getScreenSize(); Dimension scrnsize = toolkit.getScreenSize();
double screenValue = FRScreen.getByDimension(scrnsize).getValue(); double screenValue = FRScreen.getByDimension(scrnsize).getValue();
if(screenValue != FormArea.DEFAULT_SLIDER){ if (screenValue != FormArea.DEFAULT_SLIDER) {
this.setContainerPercent(screenValue / FormArea.DEFAULT_SLIDER); this.setContainerPercent(screenValue / FormArea.DEFAULT_SLIDER);
} }
} }
/** /**
* 返回容器大小的百分比 * 返回容器大小的百分比
*
* @return the containerPercent * @return the containerPercent
*/ */
public double getContainerPercent() { public double getContainerPercent() {
@ -94,16 +95,18 @@ public class XWAbsoluteLayout extends XLayoutContainer {
/** /**
* 设置容器大小的百分比 * 设置容器大小的百分比
*
* @param containerPercent the containerPercent to set * @param containerPercent the containerPercent to set
*/ */
public void setContainerPercent(double containerPercent) { public void setContainerPercent(double containerPercent) {
this.containerPercent = containerPercent; this.containerPercent = containerPercent;
minWidth = (int) (XWAbsoluteLayout.MIN_WIDTH*containerPercent); minWidth = (int) (XWAbsoluteLayout.MIN_WIDTH * containerPercent);
minHeight = (int) (XWAbsoluteLayout.MIN_HEIGHT*containerPercent); minHeight = (int) (XWAbsoluteLayout.MIN_HEIGHT * containerPercent);
} }
/** /**
* 返回界面处根据百分比调整后的最小宽度 * 返回界面处根据百分比调整后的最小宽度
*
* @return 最小宽度 * @return 最小宽度
*/ */
public int getActualMinWidth() { public int getActualMinWidth() {
@ -112,6 +115,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
/** /**
* 返回界面处根据百分比调整后的最小高度 * 返回界面处根据百分比调整后的最小高度
*
* @return 最小高度 * @return 最小高度
*/ */
public int getActualMinHeight() { public int getActualMinHeight() {
@ -120,13 +124,14 @@ public class XWAbsoluteLayout extends XLayoutContainer {
/** /**
* 返回界面处根据百分比调整后的间隔大小且为偶数 * 返回界面处根据百分比调整后的间隔大小且为偶数
*
* @return 间隔 * @return 间隔
*/ */
public int getAcualInterval() { public int getAcualInterval() {
// adapter那边交叉三等分、删除都要判断是否对齐,所以间隔转为偶数 // adapter那边交叉三等分、删除都要判断是否对齐,所以间隔转为偶数
int interval = (int) (toData().getCompInterval()*containerPercent); int interval = (int) (toData().getCompInterval() * containerPercent);
int val = interval/2; int val = interval / 2;
return val*2; return val * 2;
} }
/** /**
@ -136,10 +141,10 @@ public class XWAbsoluteLayout extends XLayoutContainer {
if (containerPercent == 1.0) { if (containerPercent == 1.0) {
return rec; return rec;
} }
rec.x = (int) (rec.x/containerPercent); rec.x = (int) (rec.x / containerPercent);
rec.y = (int) (rec.y/containerPercent); rec.y = (int) (rec.y / containerPercent);
rec.width = (int) (rec.width/containerPercent); rec.width = (int) (rec.width / containerPercent);
rec.height = (int) (rec.height/containerPercent); rec.height = (int) (rec.height / containerPercent);
return rec; return rec;
} }
@ -149,21 +154,21 @@ public class XWAbsoluteLayout extends XLayoutContainer {
public void updateBoundsWidget(XCreator xCreator) { public void updateBoundsWidget(XCreator xCreator) {
WAbsoluteLayout layout = this.toData(); WAbsoluteLayout layout = this.toData();
if (xCreator.hasTitleStyle()) { if (xCreator.hasTitleStyle()) {
xCreator = (XLayoutContainer)xCreator.getParent(); xCreator = (XLayoutContainer) xCreator.getParent();
} }
if (xCreator.acceptType(XWAbsoluteLayout.class)){ if (xCreator.acceptType(XWAbsoluteLayout.class)) {
((XWAbsoluteLayout) xCreator).updateBoundsWidget(); ((XWAbsoluteLayout) xCreator).updateBoundsWidget();
} }
BoundsWidget boundsWidget = layout.getBoundsWidget(xCreator.toData()); BoundsWidget boundsWidget = layout.getBoundsWidget(xCreator.toData());
Rectangle rectangle = dealWidgetBound(xCreator.getBounds()); Rectangle rectangle = dealWidgetBound(xCreator.getBounds());
} }
private Rectangle calculateBound(Rectangle rec, double pw, double ph){ private Rectangle calculateBound(Rectangle rec, double pw, double ph) {
Rectangle calRec = new Rectangle(0,0,0,0); Rectangle calRec = new Rectangle(0, 0, 0, 0);
calRec.x = (int)(rec.x / pw); calRec.x = (int) (rec.x / pw);
calRec.y = (int)(rec.y / ph); calRec.y = (int) (rec.y / ph);
calRec.width = (int)(rec.width / pw); calRec.width = (int) (rec.width / pw);
calRec.height = (int)(rec.height / ph); calRec.height = (int) (rec.height / ph);
return calRec; return calRec;
} }
@ -177,7 +182,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
if (backupBound != null && layout.getCompState() == WAbsoluteLayout.STATE_FIT) { if (backupBound != null && layout.getCompState() == WAbsoluteLayout.STATE_FIT) {
double percentW = ((double) backupBound.width / (double) currentBound.width); double percentW = ((double) backupBound.width / (double) currentBound.width);
double percentH = ((double) backupBound.height / (double) currentBound.height); double percentH = ((double) backupBound.height / (double) currentBound.height);
for (int index = 0, n = this.getComponentCount(); index < n; index++){ for (int index = 0, n = this.getComponentCount(); index < n; index++) {
XCreator creator = (XCreator) this.getComponent(index); XCreator creator = (XCreator) this.getComponent(index);
BoundsWidget wgt = layout.getBoundsWidget(creator.toData()); BoundsWidget wgt = layout.getBoundsWidget(creator.toData());
// 用当前的显示大小计算后调正具体位置 // 用当前的显示大小计算后调正具体位置
@ -186,7 +191,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
wgt.setBounds(rec); wgt.setBounds(rec);
creator.setBounds(rec); creator.setBounds(rec);
//绝对布局嵌套,要更新内部的绝对布局 //绝对布局嵌套,要更新内部的绝对布局
if (creator.acceptType(XWAbsoluteLayout.class)){ if (creator.acceptType(XWAbsoluteLayout.class)) {
creator.setBackupBound(wgtBound); creator.setBackupBound(wgtBound);
((XWAbsoluteLayout) creator).updateBoundsWidget(); ((XWAbsoluteLayout) creator).updateBoundsWidget();
} }
@ -198,6 +203,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
* 更新子组件的Bound * 更新子组件的Bound
* 这边主要用于绝对布局子组件在适应区域选项时 * 这边主要用于绝对布局子组件在适应区域选项时
* 涉及到的不同分辨率下缩放 * 涉及到的不同分辨率下缩放
*
* @param minHeight 最小高度 * @param minHeight 最小高度
*/ */
@Override @Override
@ -207,10 +213,10 @@ public class XWAbsoluteLayout extends XLayoutContainer {
for (int i = 0; i < this.getComponentCount(); i++) { for (int i = 0; i < this.getComponentCount(); i++) {
XCreator creator = getXCreator(i); XCreator creator = getXCreator(i);
Rectangle rec = new Rectangle(creator.getBounds()); Rectangle rec = new Rectangle(creator.getBounds());
rec.x = (int)(rec.x / prevContainerPercent * containerPercent); rec.x = (int) (rec.x / prevContainerPercent * containerPercent);
rec.y = (int)(rec.y / prevContainerPercent * containerPercent); rec.y = (int) (rec.y / prevContainerPercent * containerPercent);
rec.height = (int)(rec.height / prevContainerPercent * containerPercent); rec.height = (int) (rec.height / prevContainerPercent * containerPercent);
rec.width = (int)(rec.width / prevContainerPercent * containerPercent); rec.width = (int) (rec.width / prevContainerPercent * containerPercent);
BoundsWidget wgt = toData().getBoundsWidget(creator.toData()); BoundsWidget wgt = toData().getBoundsWidget(creator.toData());
wgt.setBounds(rec); wgt.setBounds(rec);
creator.setBounds(rec); creator.setBounds(rec);
@ -222,6 +228,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
/** /**
* 增加对齐线 * 增加对齐线
*
* @param connector 对齐线 * @param connector 对齐线
*/ */
public void addConnector(Connector connector) { public void addConnector(Connector connector) {
@ -235,6 +242,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
/** /**
* 去除对齐线 * 去除对齐线
*
* @param connector 对齐线 * @param connector 对齐线
*/ */
public void removeConnector(Connector connector) { public void removeConnector(Connector connector) {
@ -244,6 +252,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
/** /**
* 返回对应的widget容器 * 返回对应的widget容器
*
* @return 返回WAbsoluteLayout * @return 返回WAbsoluteLayout
*/ */
@Override @Override
@ -258,6 +267,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
/** /**
* 返回默认的容器name * 返回默认的容器name
*
* @return 返回绝对布局容器名 * @return 返回绝对布局容器名
*/ */
@Override @Override
@ -299,10 +309,10 @@ public class XWAbsoluteLayout extends XLayoutContainer {
WAbsoluteLayout abs = toData(); WAbsoluteLayout abs = toData();
this.removeAll(); this.removeAll();
for (int i = 0, count = abs.getWidgetCount(); i < count; i++) { for (int i = 0, count = abs.getWidgetCount(); i < count; i++) {
BoundsWidget bw = (BoundsWidget)abs.getWidget(i); BoundsWidget bw = (BoundsWidget) abs.getWidget(i);
if (bw != null) { if (bw != null) {
Rectangle bounds = bw.getBounds(); Rectangle bounds = bw.getBounds();
XWidgetCreator comp = (XWidgetCreator)XCreatorUtils.createXCreator(bw.getWidget()); XWidgetCreator comp = (XWidgetCreator) XCreatorUtils.createXCreator(bw.getWidget());
if (!comp.acceptType(XWParameterLayout.class)) { if (!comp.acceptType(XWParameterLayout.class)) {
comp.setDirections(Direction.ALL); comp.setDirections(Direction.ALL);
} }
@ -315,6 +325,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
/** /**
* 当前组件zorder位置替换新的控件 * 当前组件zorder位置替换新的控件
*
* @param widget 控件 * @param widget 控件
* @param oldcreator 旧组件 * @param oldcreator 旧组件
* @return 组件 * @return 组件
@ -333,6 +344,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
/** /**
* 组件增加 * 组件增加
*
* @param e 容器事件 * @param e 容器事件
*/ */
@Override @Override
@ -350,6 +362,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
/** /**
* 在设计界面中有组件移除的时候需要通知WLayout容器重新paint * 在设计界面中有组件移除的时候需要通知WLayout容器重新paint
*
* @param e 容器事件 * @param e 容器事件
*/ */
@Override @Override
@ -377,21 +390,21 @@ public class XWAbsoluteLayout extends XLayoutContainer {
@Override @Override
public XLayoutContainer getTopLayout() { public XLayoutContainer getTopLayout() {
XLayoutContainer xTopLayout = XCreatorUtils.getParentXLayoutContainer(this).getTopLayout(); XLayoutContainer xTopLayout = XCreatorUtils.getParentXLayoutContainer(this).getTopLayout();
if (xTopLayout != null && !xTopLayout.isEditable()){ if (xTopLayout != null && !xTopLayout.isEditable()) {
return xTopLayout; return xTopLayout;
} } else {
else{
return this; return this;
} }
} }
/** /**
* 得到属性名 * 得到属性名
*
* @return 属性名 * @return 属性名
* @throws java.beans.IntrospectionException * @throws java.beans.IntrospectionException
*/ */
public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException { public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException {
return new CRPropertyDescriptor[] { return new CRPropertyDescriptor[]{
new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName( new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName(
Inter.getLocText("FR-Designer_Form-Widget_Name")) Inter.getLocText("FR-Designer_Form-Widget_Name"))
}; };
@ -439,7 +452,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
* @param editingMouseListener 鼠标点击位置处理器 * @param editingMouseListener 鼠标点击位置处理器
* @param e 鼠标点击事件 * @param e 鼠标点击事件
*/ */
public void respondClick(EditingMouseListener editingMouseListener,MouseEvent e){ public void respondClick(EditingMouseListener editingMouseListener, MouseEvent e) {
FormDesigner designer = editingMouseListener.getDesigner(); FormDesigner designer = editingMouseListener.getDesigner();
SelectionModel selectionModel = editingMouseListener.getSelectionModel(); SelectionModel selectionModel = editingMouseListener.getSelectionModel();
boolean isEditing = isEditable() || designer.getCursor().getType() == Cursor.HAND_CURSOR || e.getClickCount() == 2; boolean isEditing = isEditable() || designer.getCursor().getType() == Cursor.HAND_CURSOR || e.getClickCount() == 2;
@ -459,6 +472,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
/** /**
* body大小手动调整的时候 * body大小手动调整的时候
* 按照比例调整组件的宽度 * 按照比例调整组件的宽度
*
* @param percent 比例 * @param percent 比例
*/ */
@Override @Override
@ -475,6 +489,7 @@ public class XWAbsoluteLayout extends XLayoutContainer {
/** /**
* body大小手动调整的时候 * body大小手动调整的时候
* 按照比例调整组件的高度 * 按照比例调整组件的高度
*
* @param percent 比例 * @param percent 比例
*/ */
@Override @Override

Loading…
Cancel
Save