|
|
|
@ -4,11 +4,12 @@ import com.fr.design.designer.creator.XCreator;
|
|
|
|
|
import com.fr.design.designer.creator.XLayoutContainer; |
|
|
|
|
import com.fr.design.designer.creator.cardlayout.XWCardTagLayout; |
|
|
|
|
import com.fr.design.dialog.FineJOptionPane; |
|
|
|
|
import com.fr.design.file.HistoryTemplateListPane; |
|
|
|
|
import com.fr.design.form.layout.FRBorderLayout; |
|
|
|
|
import com.fr.design.mainframe.JTemplate; |
|
|
|
|
import com.fr.design.ui.util.UIUtil; |
|
|
|
|
import com.fr.general.ComparatorUtils; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import javax.swing.JOptionPane; |
|
|
|
|
import java.awt.BorderLayout; |
|
|
|
|
import java.awt.Rectangle; |
|
|
|
|
|
|
|
|
@ -46,18 +47,42 @@ public class FRCardMainBorderLayoutAdapter extends FRBorderLayoutAdapter {
|
|
|
|
|
Rectangle rectangle = creator.getBounds(); |
|
|
|
|
//不能超出控件边界
|
|
|
|
|
if (ComparatorUtils.equals(constraints, BorderLayout.NORTH) || ComparatorUtils.equals(constraints, BorderLayout.SOUTH)) { |
|
|
|
|
int containerHeight = container.getHeight(); |
|
|
|
|
if (rectangle.height > containerHeight) { |
|
|
|
|
FineJOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Tablayout_Bounds")); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
return isBeyondMinConstraint(rectangle.height, container.getHeight()); |
|
|
|
|
} else if (ComparatorUtils.equals(constraints, BorderLayout.EAST) || ComparatorUtils.equals(constraints, BorderLayout.WEST)) { |
|
|
|
|
int containerWidth = container.getWidth(); |
|
|
|
|
if (rectangle.width > containerWidth) { |
|
|
|
|
FineJOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Tablayout_Bounds")); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
return isBeyondMinConstraint(rectangle.width, container.getWidth()); |
|
|
|
|
} |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 是否超出最小限制 |
|
|
|
|
* |
|
|
|
|
* @param minConstraint 最小限制 |
|
|
|
|
* @param value 数值 |
|
|
|
|
* @return 是否超出最小限制 |
|
|
|
|
*/ |
|
|
|
|
private boolean isBeyondMinConstraint(int minConstraint, int value) { |
|
|
|
|
if (minConstraint > value) { |
|
|
|
|
FineJOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Tablayout_Bounds")); |
|
|
|
|
if (container.getBackupBound() != null) { |
|
|
|
|
// 手动拖动导致变矮的场景
|
|
|
|
|
container.setSize(container.getBackupBound().getSize()); |
|
|
|
|
} else { |
|
|
|
|
// 自适应布局平分高度导致变矮的场景
|
|
|
|
|
UIUtil.invokeLaterIfNeeded(new Runnable() { |
|
|
|
|
@Override |
|
|
|
|
public void run() { |
|
|
|
|
JTemplate<?, ?> jt = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); |
|
|
|
|
if (jt != null) { |
|
|
|
|
jt.undo(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
return true; |
|
|
|
|
} else { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|