|
|
|
@ -2,8 +2,6 @@ package com.fr.design.designer.properties;
|
|
|
|
|
|
|
|
|
|
import com.fr.design.designer.beans.AdapterBus; |
|
|
|
|
import com.fr.design.designer.beans.adapters.layout.FRFitLayoutAdapter; |
|
|
|
|
import com.fr.design.designer.creator.XCreatorUtils; |
|
|
|
|
import com.fr.design.designer.creator.XLayoutContainer; |
|
|
|
|
import com.fr.design.mainframe.FormDesigner; |
|
|
|
|
import com.fr.design.mainframe.WidgetPropertyPane; |
|
|
|
|
import com.fr.design.mainframe.widget.editors.IntegerPropertyEditor; |
|
|
|
@ -12,8 +10,9 @@ import com.fr.design.designer.beans.ConstraintsGroupModel;
|
|
|
|
|
import com.fr.design.designer.creator.XCreator; |
|
|
|
|
import com.fr.design.designer.creator.XWFitLayout; |
|
|
|
|
import com.fr.design.utils.ComponentUtils; |
|
|
|
|
import com.fr.form.ui.Widget; |
|
|
|
|
import com.fr.form.ui.PaddingMargin; |
|
|
|
|
import com.fr.form.ui.container.WFitLayout; |
|
|
|
|
import com.fr.form.ui.container.WLayout; |
|
|
|
|
import com.fr.general.Inter; |
|
|
|
|
|
|
|
|
|
import javax.swing.*; |
|
|
|
@ -30,8 +29,8 @@ import java.awt.*;
|
|
|
|
|
*/ |
|
|
|
|
//控件在自适应布局中宽度、高度属性,7.1.1不可编辑
|
|
|
|
|
public class FRFitLayoutConstraints implements ConstraintsGroupModel { |
|
|
|
|
private static final int MINHEIGHT = XCreator.SMALL_PREFERRED_SIZE.height; |
|
|
|
|
private static final int MINWIDTH = XCreator.SMALL_PREFERRED_SIZE.width; |
|
|
|
|
private static final int MINHEIGHT = WLayout.MIN_HEIGHT; |
|
|
|
|
private static final int MINWIDTH = WLayout.MIN_WIDTH; |
|
|
|
|
private static final int ROWNUM = 2; |
|
|
|
|
|
|
|
|
|
private DefaultTableCellRenderer renderer; |
|
|
|
@ -91,31 +90,39 @@ public class FRFitLayoutConstraints implements ConstraintsGroupModel {
|
|
|
|
|
int v = value == null ? 0 : ((Number) value).intValue(); |
|
|
|
|
int difference = 0; |
|
|
|
|
Rectangle bounds = getBounds(); |
|
|
|
|
Rectangle rec = ComponentUtils.getRelativeBounds(parent); |
|
|
|
|
WFitLayout wFitLayout = parent.toData(); |
|
|
|
|
int minHeight = (int)(MINHEIGHT * wFitLayout.getResolutionScaling()); |
|
|
|
|
int minWidth = (int)(MINWIDTH * wFitLayout.getResolutionScaling()); |
|
|
|
|
PaddingMargin margin= wFitLayout.getMargin(); |
|
|
|
|
switch (row) { |
|
|
|
|
case 0: |
|
|
|
|
if(v < MINWIDTH){ |
|
|
|
|
JOptionPane.showMessageDialog(null, Inter.getLocText("Min-Width") + Integer.toString(MINWIDTH)); |
|
|
|
|
v = xCreator.getWidth(); |
|
|
|
|
} |
|
|
|
|
if (bounds.width == v){ |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
if(bounds.width == rec.width - margin.getLeft() - margin.getRight()){ |
|
|
|
|
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Beyond_Bounds")); |
|
|
|
|
}else if(v < minWidth){ |
|
|
|
|
JOptionPane.showMessageDialog(null, Inter.getLocText("Min-Width") + Integer.toString(minWidth)); |
|
|
|
|
v = xCreator.getWidth(); |
|
|
|
|
} |
|
|
|
|
difference = bounds.width - v; |
|
|
|
|
bounds.width = v; |
|
|
|
|
break; |
|
|
|
|
case 1: |
|
|
|
|
if(v < MINHEIGHT){ |
|
|
|
|
JOptionPane.showMessageDialog(null, Inter.getLocText("Min-Height") + Integer.toString(MINHEIGHT)); |
|
|
|
|
v = xCreator.getHeight(); |
|
|
|
|
} |
|
|
|
|
if (bounds.height == v){ |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
if(bounds.height == rec.height - margin.getTop() - margin.getBottom()){ |
|
|
|
|
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Beyond_Bounds")); |
|
|
|
|
}else if(v < minHeight){ |
|
|
|
|
JOptionPane.showMessageDialog(null, Inter.getLocText("Min-Height") + Integer.toString(minHeight)); |
|
|
|
|
v = xCreator.getHeight(); |
|
|
|
|
} |
|
|
|
|
difference = bounds.height - v; |
|
|
|
|
bounds.height = v; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
WFitLayout wFitLayout = parent.toData(); |
|
|
|
|
wFitLayout.setBounds(xCreator.toData(),bounds); |
|
|
|
|
FormDesigner formDesigner = WidgetPropertyPane.getInstance().getEditingFormDesigner(); |
|
|
|
|
Rectangle backupBounds = getBounds(); |
|
|
|
@ -131,7 +138,6 @@ public class FRFitLayoutConstraints implements ConstraintsGroupModel {
|
|
|
|
|
|
|
|
|
|
public Rectangle getBounds(){ |
|
|
|
|
Rectangle bounds = new Rectangle(xCreator.getBounds()); |
|
|
|
|
XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(xCreator); |
|
|
|
|
if (parent == null) { |
|
|
|
|
return bounds; |
|
|
|
|
} |
|
|
|
|