Browse Source

Merge pull request #1561 in BA/design from ~KERRY/design:feature/9.0 to feature/9.0

* commit '3ebf36600c00586d99d15e8922fcb0809ec65150':
  添加Override注解
  添加Override注解
  删除无用import
  REPORT-2615 代码质量修改
  REPORT-2615 tab控件树结构调整
superman 8 years ago
parent
commit
85763b19ed
  1. 14
      designer_form/src/com/fr/design/designer/creator/DedicateLayoutContainer.java
  2. 19
      designer_form/src/com/fr/design/designer/creator/XCreator.java
  3. 9
      designer_form/src/com/fr/design/designer/creator/XCreatorTools.java
  4. 3
      designer_form/src/com/fr/design/designer/creator/XElementCase.java
  5. 4
      designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java
  6. 22
      designer_form/src/com/fr/design/designer/creator/XWAbsoluteBodyLayout.java
  7. 13
      designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java
  8. 27
      designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java
  9. 30
      designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java
  10. 18
      designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java
  11. 31
      designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTitleLayout.java
  12. 32
      designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java
  13. 6
      designer_form/src/com/fr/design/designer/treeview/ComponentTreeCellRenderer.java
  14. 10
      designer_form/src/com/fr/design/designer/treeview/ComponentTreeModel.java
  15. 21
      designer_form/src/com/fr/design/mainframe/ComponentTree.java

14
designer_form/src/com/fr/design/designer/creator/DedicateLayoutContainer.java

@ -5,9 +5,10 @@ package com.fr.design.designer.creator;
import com.fr.form.ui.container.WLayout;
import java.awt.*;
import java.awt.Component;
import java.awt.Dimension;
import java.beans.IntrospectionException;
import java.util.ArrayList;
import java.util.List;
/**
* 一些控件专属的容器如标题容器sclae容器
@ -27,6 +28,7 @@ public abstract class DedicateLayoutContainer extends XLayoutContainer {
* @return 属性名
* @throws IntrospectionException
*/
@Override
public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException {
return new CRPropertyDescriptor[0];
}
@ -50,7 +52,8 @@ public abstract class DedicateLayoutContainer extends XLayoutContainer {
*
* @param path 控件树list
*/
public void notShowInComponentTree(ArrayList<Component> path) {
@Override
public void notShowInComponentTree(List<Component> path) {
path.remove(path.size() - 1);
}
@ -59,6 +62,7 @@ public abstract class DedicateLayoutContainer extends XLayoutContainer {
*
* @param name 名称
*/
@Override
public void resetCreatorName(String name) {
super.resetCreatorName(name);
XCreator child = getXCreator(XWScaleLayout.INDEX);
@ -70,6 +74,7 @@ public abstract class DedicateLayoutContainer extends XLayoutContainer {
* 重置组件的可见性
* @param visible 可见性
*/
@Override
public void resetVisible(boolean visible){
super.resetVisible(visible);
XCreator child = getXCreator(XWScaleLayout.INDEX);
@ -80,6 +85,7 @@ public abstract class DedicateLayoutContainer extends XLayoutContainer {
*
* @return 组件
*/
@Override
public XCreator getPropertyDescriptorCreator() {
return getXCreator(XWScaleLayout.INDEX);
}
@ -89,6 +95,7 @@ public abstract class DedicateLayoutContainer extends XLayoutContainer {
*
* @return 是则返回true
*/
@Override
public boolean isComponentTreeLeaf() {
return true;
}
@ -98,6 +105,7 @@ public abstract class DedicateLayoutContainer extends XLayoutContainer {
*
* @return 是则返回true
*/
@Override
public boolean isDedicateContainer() {
return true;
}

19
designer_form/src/com/fr/design/designer/creator/XCreator.java

@ -271,6 +271,7 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo
*@param formEditor 设计界面组件
*@return 工具界面
*/
@Override
public JComponent createToolPane(BaseJForm jform, FormDesigner formEditor) {
if (!BaseUtils.isAuthorityEditing()) {
if (isDedicateContainer()) {
@ -370,14 +371,25 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo
* 控件树不显示此组件
* @param path 控件树list
*/
public void notShowInComponentTree(ArrayList<Component> path) {
@Override
public void notShowInComponentTree(List<Component> path) {
return;
}
/**
* 获取其在控件树上可见父层
* @return 组件
*/
@Override
public Component getParentShow(){
return this.getParent();
}
/**
* 重置组件的名称
* @param name 名称
*/
@Override
public void resetCreatorName(String name) {
toData().setWidgetName(name);
}
@ -394,6 +406,7 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo
* 返回编辑的子组件scale为其内部组件
* @return 组件
*/
@Override
public XCreator getEditingChildCreator() {
return this;
}
@ -402,6 +415,7 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo
* 返回对应属性表的组件scale和title返回其子组件
* @return 组件
*/
@Override
public XCreator getPropertyDescriptorCreator() {
return this;
}
@ -410,6 +424,7 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo
* 更新子组件的Bound; 没有不处理
* @param minHeight 最小高度
*/
@Override
public void updateChildBound(int minHeight) {
return;
}
@ -418,6 +433,7 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo
* 是否作为控件树的叶子节点
* @return 是则返回true
*/
@Override
public boolean isComponentTreeLeaf() {
return true;
}
@ -426,6 +442,7 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo
* 是否为sclae和title专属容器
* @return 是则返回true
*/
@Override
public boolean isDedicateContainer() {
return false;
}

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

@ -5,6 +5,7 @@ package com.fr.design.designer.creator;
import java.awt.Component;
import java.util.ArrayList;
import java.util.List;
/**
* @author jim
@ -17,7 +18,7 @@ public interface XCreatorTools {
* 控件树不显示此组件
* @param path 控件树list
*/
void notShowInComponentTree(ArrayList<Component> path);
void notShowInComponentTree(List<Component> path);
/**
* 重置组件的名称
@ -55,4 +56,10 @@ public interface XCreatorTools {
*/
boolean isDedicateContainer();
/**
* 获取其在控件树上可见父层
* @return 组件
*/
Component getParentShow();
}

3
designer_form/src/com/fr/design/designer/creator/XElementCase.java

@ -119,9 +119,10 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme
ReportFitAttrProvider fitAttr = wbTpl.getFitAttr();
ElementCaseEditor editor = this.toData();
//兼容之前报表块(之前三个选项为:默认 横向 双向 现在是:横向 双向 不自适应)
if (editor.getFitStateInPC() == 0) {
if (editor.getFitStateInPC() == 0 || processor.getFitStateInPC(fitAttr) == 0 ) {
editor.setReportFitAttr(null);
}
ReportFitAttrProvider reportFit = editor.getReportFitAttr();
if(fitAttr != null){
reportFit = fitAttr.fitInBrowser() ? editor.getReportFitAttr() : fitAttr;

4
designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java

@ -241,6 +241,10 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme
}
}
public int getShowXCreatorCount() {
return getXCreatorCount();
}
public int getXCreatorCount() {
return getComponentCount();
}

22
designer_form/src/com/fr/design/designer/creator/XWAbsoluteBodyLayout.java

@ -5,17 +5,13 @@ import com.fr.design.designer.beans.adapters.layout.FRAbsoluteBodyLayoutAdapter;
import com.fr.design.designer.properties.mobile.BodyMobilePropertyUI;
import com.fr.design.form.util.XCreatorConstants;
import com.fr.design.fun.WidgetPropertyUIProvider;
import com.fr.design.mainframe.widget.editors.PaddingMarginEditor;
import com.fr.design.mainframe.widget.editors.WLayoutBorderStyleEditor;
import com.fr.design.mainframe.widget.renderer.LayoutBorderStyleRenderer;
import com.fr.design.mainframe.widget.renderer.PaddingMarginCellRenderer;
import com.fr.form.ui.LayoutBorderStyle;
import com.fr.form.ui.container.WAbsoluteBodyLayout;
import com.fr.general.ComparatorUtils;
import com.fr.general.Inter;
import com.fr.stable.core.PropertyChangeAdapter;
import java.awt.*;
import java.awt.Component;
import java.awt.Dimension;
import java.beans.IntrospectionException;
/**
@ -89,6 +85,20 @@ public class XWAbsoluteBodyLayout extends XWAbsoluteLayout {
};
}
/**
* 获取其在控件树上可见父层
* @return 组件
*/
@Override
public Component getParentShow(){
//绝对布局作为body的时候不显示自适应布局父层
if ((this.getParent() != null)) {
return ((XCreator) this.getParent()).getParentShow();
}
return super.getParentShow();
}
@Override
public WidgetPropertyUIProvider[] getWidgetPropertyUIProviders() {
return new WidgetPropertyUIProvider[]{ new BodyMobilePropertyUI(this)};

13
designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java

@ -153,6 +153,7 @@ public class XCardSwitchButton extends XButton {
* 点击事件
*
*/
@Override
public void respondClick(EditingMouseListener editingMouseListener,
MouseEvent e) {
FormDesigner designer = editingMouseListener.getDesigner();
@ -160,7 +161,7 @@ public class XCardSwitchButton extends XButton {
//关闭重新打开,相关的layout未存到xml中,初始化
if(cardLayout == null){
initRelateLayout(this);
initRelateLayout();
}
//获取当前tab的index
@ -254,7 +255,7 @@ public class XCardSwitchButton extends XButton {
//SwitchButton对应的XWCardLayout和XWCardTagLayout暂未存到xml中,重新打开时根据父子层关系获取
private void initRelateLayout(XCardSwitchButton button){
private void initRelateLayout(){
this.tagLayout = (XWCardTagLayout)this.getBackupParent();
XWCardTitleLayout titleLayout = (XWCardTitleLayout) this.tagLayout.getBackupParent();
XWCardMainBorderLayout borderLayout = (XWCardMainBorderLayout)titleLayout.getBackupParent();
@ -310,6 +311,7 @@ public class XCardSwitchButton extends XButton {
}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
@ -353,7 +355,7 @@ public class XCardSwitchButton extends XButton {
this.setButtonText(titleText);
if (this.cardLayout == null) {
initRelateLayout(this);
initRelateLayout();
}
LayoutBorderStyle style = this.cardLayout.toData().getBorderStyle();
@ -418,6 +420,10 @@ public class XCardSwitchButton extends XButton {
public XCreator getXCreator() {
//根据index获取对应的tabFitLayout
int index = ((CardSwitchButton) this.toData()).getIndex();
//关闭重新打开,相关的layout未存到xml中,初始化
if(cardLayout == null){
initRelateLayout();
}
return (XCreator) cardLayout.getComponent(index);
}
@ -428,6 +434,7 @@ public class XCardSwitchButton extends XButton {
label = this.getContentLabel();
}
@Override
public void firePropertyChange() {
super.firePropertyChange();
tagLayout.setTabsAndAdjust();

27
designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java

@ -40,9 +40,11 @@ import com.fr.stable.core.PropertyChangeAdapter;
import javax.swing.border.Border;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ContainerEvent;
import java.beans.IntrospectionException;
import java.util.List;
/**
* @author richer
@ -55,6 +57,9 @@ public class XWCardLayout extends XLayoutContainer {
private static final int NORTH = 0;
private FormDesigner designer;
private static final int LAYOUT_INDEX = 0;
//默认蓝色标题背景
private static final Color TITLE_COLOR = new Color(51, 132, 240);
@ -76,6 +81,7 @@ public class XWCardLayout extends XLayoutContainer {
* @date 2014-11-25-下午6:22:40
*
*/
@Override
public String createDefaultName() {
return "cardlayout";
}
@ -89,6 +95,7 @@ public class XWCardLayout extends XLayoutContainer {
* @date 2014-11-25-下午6:22:17
*
*/
@Override
public WCardLayout toData() {
return (WCardLayout) data;
}
@ -97,6 +104,7 @@ public class XWCardLayout extends XLayoutContainer {
* 初始化时默认的组件大小
* @return 默认Dimension
*/
@Override
public Dimension initEditorSize() {
return new Dimension(500, 300);
}
@ -150,6 +158,7 @@ public class XWCardLayout extends XLayoutContainer {
* @date 2014-11-25-下午4:47:23
*
*/
@Override
protected XLayoutContainer getCreatorWrapper(String widgetName) {
initStyle();
Dimension dimension = new Dimension();
@ -223,6 +232,16 @@ public class XWCardLayout extends XLayoutContainer {
return xFirstBtn;
}
/**
* 控件树不显示此组件
* @param path 控件树list
*/
@Override
public void notShowInComponentTree(List<Component> path) {
path.remove(LAYOUT_INDEX);
}
/**
* 设置父容器的名字
*
@ -233,6 +252,7 @@ public class XWCardLayout extends XLayoutContainer {
* @date 2014-11-27-上午9:47:00
*
*/
@Override
protected void setWrapperName(XLayoutContainer parentPanel, String widgetName) {
parentPanel.toData().setWidgetName("tablayout" + widgetName.replaceAll(createDefaultName(),""));
}
@ -246,6 +266,7 @@ public class XWCardLayout extends XLayoutContainer {
* @date 2014-11-25-下午4:57:55
*
*/
@Override
protected void addToWrapper(XLayoutContainer parentPanel, int width, int minHeight){
parentPanel.add(this, WBorderLayout.CENTER);
}
@ -259,6 +280,7 @@ public class XWCardLayout extends XLayoutContainer {
* @date 2014-11-25-下午6:20:10
*
*/
@Override
public void componentAdded(ContainerEvent e) {
if (isRefreshing) {
return;
@ -284,6 +306,7 @@ public class XWCardLayout extends XLayoutContainer {
* 是否支持标题样式
* @return 默认false
*/
@Override
public boolean hasTitleStyle() {
return true;
}
@ -293,6 +316,7 @@ public class XWCardLayout extends XLayoutContainer {
* @return 属性名
* @throws IntrospectionException
*/
@Override
public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException {
//嵌套的tab组件,内层的不支持轮播属性,屏蔽属性表
if(!isNested()) {
@ -379,6 +403,7 @@ public class XWCardLayout extends XLayoutContainer {
}
//初始化样式
@Override
protected void initStyle() {
LayoutBorderStyle style = toData().getBorderStyle();
initBorderTitleStyle(style);
@ -432,6 +457,7 @@ public class XWCardLayout extends XLayoutContainer {
* @param designer 表单设计器
*
*/
@Override
public void deleteRelatedComponent(XCreator creator, FormDesigner designer){
XWCardMainBorderLayout mainLayout = (XWCardMainBorderLayout) creator.getBackupParent();
SelectionModel selectionModel = designer.getSelectionModel();
@ -461,6 +487,7 @@ public class XWCardLayout extends XLayoutContainer {
* data属性改变触发其他操作
*
*/
@Override
public void firePropertyChange(){
initStyle();
}

30
designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java

@ -32,6 +32,7 @@ import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
/**
* card布局主体框架
@ -44,14 +45,13 @@ public class XWCardMainBorderLayout extends XWBorderLayout{
private static final int CENTER = 1;
private static final int NORTH = 0;
public static final Color DEFAULT_BORDER_COLOR = new Color(210,210,210);
private static final int LAYOUT_INDEX = 0;
private static final int TITLE_STYLE = 2;
private static final int NORMAL_STYLE = 1;
private static final int EDIT_BTN_WIDTH = 60;
private static final int EDIT_BTN_HEIGHT = 24;
private final int CARDMAINLAYOUT_CHILD_COUNT = 1;
/**
* 构造函数
*/
@ -68,6 +68,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout{
* @date 2014-12-10-下午1:46:33
*
*/
@Override
public WCardMainBorderLayout toData() {
return (WCardMainBorderLayout) super.toData();
}
@ -98,11 +99,13 @@ public class XWCardMainBorderLayout extends XWBorderLayout{
super.add(comp, position);
}
/**
* 切换到非添加状态
*
* @return designer 表单设计器
*/
@Override
public void stopAddingState(FormDesigner designer){
designer.stopAddingState();
return;
@ -151,8 +154,14 @@ public class XWCardMainBorderLayout extends XWBorderLayout{
* 控件树不显示此组件
* @param path 控件树list
*/
public void notShowInComponentTree(ArrayList<Component> path) {
path.remove(LAYOUT_INDEX);
@Override
public void notShowInComponentTree(List<Component> path) {
return;
}
@Override
public int getShowXCreatorCount() {
return CARDMAINLAYOUT_CHILD_COUNT;
}
@Override
@ -170,6 +179,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout{
* 重新调整子组件的宽度
* @param width 宽度
*/
@Override
public void recalculateChildWidth(int width){
ArrayList<?> childrenList = this.getTargetChildrenList();
int size = childrenList.size();
@ -201,6 +211,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout{
* 重新调整子组件的高度
* @param height 高度
*/
@Override
public void recalculateChildHeight(int height){
ArrayList<?> childrenList = this.getTargetChildrenList();
int size = childrenList.size();
@ -233,6 +244,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout{
}
@Override
public void paint(Graphics g) {
super.paint(g);
//如果鼠标移动到布局内且布局不可编辑,画出编辑蒙层
@ -275,6 +287,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout{
* @param editingMouseListener 鼠标点击位置处理器
* @param e 鼠标点击事件
*/
@Override
public void respondClick(EditingMouseListener editingMouseListener, MouseEvent e){
FormDesigner designer = editingMouseListener.getDesigner();
SelectionModel selectionModel = editingMouseListener.getSelectionModel();
@ -308,10 +321,17 @@ public class XWCardMainBorderLayout extends XWBorderLayout{
}
}
@Override
public int getIndexOfChild(Object child) {
XWCardTitleLayout titlePart = this.getTitlePart();
return titlePart.getIndexOfChild(child);
}
/**
* data属性改变触发其他操作
*
*/
@Override
public void firePropertyChange(){
getCardPart().initStyle();
}

18
designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java

@ -3,14 +3,12 @@
*/
package com.fr.design.designer.creator.cardlayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Rectangle;
import java.awt.event.ContainerEvent;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
@ -119,6 +117,7 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout {
* @param e 事件
* @date 2014-11-25-下午6:20:10
*/
@Override
public void componentAdded(ContainerEvent e) {
super.componentAdded(e);
@ -153,6 +152,7 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout {
/**
* 将WLayout转换为XLayoutContainer
*/
@Override
public void convert() {
isRefreshing = true;
WCardTagLayout layout = (WCardTagLayout) this.toData();
@ -169,6 +169,7 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout {
isRefreshing = false;
}
@Override
public String createDefaultName() {
return "tabpane";
}
@ -178,6 +179,7 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout {
*
* @return designer 表单设计器
*/
@Override
public void stopAddingState(FormDesigner designer) {
designer.stopAddingState();
}
@ -212,6 +214,7 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout {
*
* @param
*/
@Override
public void setBorder(Border border) {
}
@ -239,10 +242,12 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout {
}
}
@Override
public int[] getDirections() {
return ((XCreator)getParent()).getDirections();
}
@Override
public Rectangle getBounds() {
return this.getParent().getBounds();
}
@ -252,10 +257,14 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout {
return this.getBackupParent().getTopLayout();
}
public void notShowInComponentTree(ArrayList<Component> path) {
path.remove(0);
@Override
public int getIndexOfChild(Object child) {
XLayoutContainer cardPart = ((XWCardMainBorderLayout)this.getTopLayout()).getCardPart();
return cardPart.getIndexOfChild(child);
}
@Override
public boolean isSupportDrag(){
return false;
}
@ -303,6 +312,7 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout {
* data属性改变触发其他操作
*
*/
@Override
public void firePropertyChange() {
WCardTagLayout wCardTagLayout = (WCardTagLayout) this.toData();
((XWCardMainBorderLayout) getTopLayout()).resetTabDisplayPosition(wCardTagLayout.getDisplayPosition());

31
designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTitleLayout.java

@ -3,8 +3,10 @@
*/
package com.fr.design.designer.creator.cardlayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.util.List;
import javax.swing.border.Border;
@ -33,6 +35,11 @@ public class XWCardTitleLayout extends XWBorderLayout {
private static final int CENTER = 1;
private static final int LAYOUT_INDEX = 0;
private static final int POSISIONT_OFFSET = 1;
/**
* 构造函数
*/
@ -52,9 +59,31 @@ public class XWCardTitleLayout extends XWBorderLayout {
return ((WCardTagLayout)this.getTagPart().toData()).getDisplayPosition();
}
/**
* 控件树不显示此组件
* @param path 控件树list
*/
@Override
public void notShowInComponentTree(List<Component> path) {
path.remove(LAYOUT_INDEX);
}
@Override
public int getIndexOfChild(Object child) {
int count = getComponentCount();
for (int i = 0; i < count; i++) {
Component comp = getComponent(i);
if (comp == child) {
return i - POSISIONT_OFFSET;
}
}
return -1;
}
/**
* 将WLayout转换为XLayoutContainer
*/
@Override
public void convert(){
isRefreshing = true;
WCardTitleLayout titleLayout = (WCardTitleLayout)this.toData();
@ -139,6 +168,7 @@ public class XWCardTitleLayout extends XWBorderLayout {
*
* @return designer 表单设计器
*/
@Override
public void stopAddingState(FormDesigner designer){
designer.stopAddingState();
return;
@ -182,6 +212,7 @@ public class XWCardTitleLayout extends XWBorderLayout {
return this.getBackupParent().getTopLayout();
}
@Override
public String createDefaultName() {
return "tabpane";
}

32
designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java

@ -27,7 +27,12 @@ import com.fr.stable.ArrayUtils;
import com.fr.stable.core.PropertyChangeAdapter;
import javax.swing.border.Border;
import java.awt.*;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Rectangle;
import java.beans.IntrospectionException;
@ -103,6 +108,7 @@ public class XWTabFitLayout extends XWFitLayout {
* @return 属性名
* @throws IntrospectionException
*/
@Override
public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException {
checkButonType();
CRPropertyDescriptor[] crp = ((WTabFitLayout) data).isCustomStyle() ? getisCustomStyle() : getisnotCustomStyle();
@ -245,6 +251,7 @@ public class XWTabFitLayout extends XWFitLayout {
* @param designer 表单设计器
*
*/
@Override
public void deleteRelatedComponent(XCreator creator, FormDesigner designer){
//逐层回溯找出相关的layout和对应的tab按钮
XWTabFitLayout fitLayout = (XWTabFitLayout)creator;
@ -312,6 +319,7 @@ public class XWTabFitLayout extends XWFitLayout {
* @param comp 当前组件
* void
*/
@Override
public void seleteRelatedComponent(XCreator comp){
XWTabFitLayout fitLayout = (XWTabFitLayout)comp;
WTabFitLayout fit = (WTabFitLayout) fitLayout.toData();
@ -337,6 +345,7 @@ public class XWTabFitLayout extends XWFitLayout {
* @date 2014-12-30-下午3:15:28
*
*/
@Override
public XLayoutContainer findNearestFit(){
XLayoutContainer parent = this.getBackupParent();
return parent == null ? null : parent.findNearestFit();
@ -346,6 +355,7 @@ public class XWTabFitLayout extends XWFitLayout {
* 非顶层自适应布局的缩放
* @param percent 百分比
*/
@Override
public void adjustCompSize(double percent) {
this.adjustCreatorsWhileSlide(percent);
}
@ -364,6 +374,7 @@ public class XWTabFitLayout extends XWFitLayout {
*
* @param percent 宽度变化的百分比
*/
@Override
public void adjustCreatorsWidth(double percent) {
if (this.getComponentCount()==0) {
// 初始化没有拖入控件时,实际宽度依然调整
@ -396,6 +407,7 @@ public class XWTabFitLayout extends XWFitLayout {
* 同时调整容器内的组件们,缩小时需要考虑有的组件高度不满足缩小高度
* @param percent 高度变化的百分比
*/
@Override
public void adjustCreatorsHeight(double percent) {
if (this.getComponentCount()==0) {
//调整高度后,wlayout那边记录下
@ -420,6 +432,7 @@ public class XWTabFitLayout extends XWFitLayout {
LayoutUtils.layoutContainer(this);
}
@Override
public XLayoutContainer getOuterLayout(){
XWCardLayout cardLayout = (XWCardLayout) this.getBackupParent();
return cardLayout.getBackupParent();
@ -435,10 +448,25 @@ public class XWTabFitLayout extends XWFitLayout {
}
}
/**
* 获取其在控件树上可见父层
* @return 组件
*/
@Override
public Component getParentShow(){
XCardSwitchButton cardSwitchButton = this.getxCardSwitchButton();
//控件树上显示其taglayout层
if ((cardSwitchButton != null)) {
return cardSwitchButton.getTagLayout();
}
return super.getParentShow();
}
/**
* 去除原有的间隔
* @param gap 间隔
*/
@Override
public void moveCompInterval(int gap) {
if (gap == 0) {
return;
@ -496,6 +524,7 @@ public class XWTabFitLayout extends XWFitLayout {
* ps:改变布局大小或者拖入删除拉伸都要重新考虑间隔
* @param gap 间隔
*/
@Override
public void addCompInterval(int gap) {
if (gap == 0) {
return;
@ -541,6 +570,7 @@ public class XWTabFitLayout extends XWFitLayout {
return new WidgetPropertyUIProvider[0];
}
@Override
public void firePropertyChange(){
checkButonType();
//根据字体长度设置tab宽度

6
designer_form/src/com/fr/design/designer/treeview/ComponentTreeCellRenderer.java

@ -25,12 +25,6 @@ public class ComponentTreeCellRenderer extends DefaultTreeCellRenderer {
super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
if (value instanceof XCreator) {
String name = ((XCreator) value).toData().getWidgetName();
//树节点上不显示此控件
if(value instanceof XWCardLayout){
this.setSize(new Dimension(0, 0));
this.setPreferredSize(new Dimension(0, 0));
return this;
}
setText(name);
Icon icon = XCreatorUtils.getCreatorIcon((XCreator) value);
if (icon != null) {

10
designer_form/src/com/fr/design/designer/treeview/ComponentTreeModel.java

@ -10,7 +10,11 @@ import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;
import com.fr.base.FRContext;
import com.fr.design.designer.creator.*;
import com.fr.design.designer.creator.XCreator;
import com.fr.design.designer.creator.XLayoutContainer;
import com.fr.design.designer.creator.XWAbsoluteBodyLayout;
import com.fr.design.designer.creator.XWFitLayout;
import com.fr.design.designer.creator.XWidgetCreator;
import com.fr.design.mainframe.FormDesigner;
import com.fr.design.designer.beans.events.DesignerEvent;
import com.fr.form.ui.Widget;
@ -23,6 +27,7 @@ public class ComponentTreeModel implements TreeModel {
private final int ABSOLUTE_AS_BODY_NOT_FOUND = -1;
public ComponentTreeModel(FormDesigner designer, Component root) {
this.designer = designer;
this.root = root;
@ -60,8 +65,9 @@ public class ComponentTreeModel implements TreeModel {
public int getChildCount(Object parent) {
if (parent != null && parent instanceof XLayoutContainer) {
XLayoutContainer xlayout = (XLayoutContainer) parent;
return xlayout.getXCreatorCount();
return xlayout.getShowXCreatorCount();
}
return 0;
}

21
designer_form/src/com/fr/design/mainframe/ComponentTree.java

@ -3,8 +3,6 @@ package com.fr.design.mainframe;
import com.fr.design.constants.UIConstants;
import com.fr.design.designer.creator.XCreator;
import com.fr.design.designer.creator.XLayoutContainer;
import com.fr.design.designer.creator.XWAbsoluteBodyLayout;
import com.fr.design.designer.creator.XWFitLayout;
import com.fr.design.designer.treeview.ComponentTreeCellRenderer;
import com.fr.design.designer.treeview.ComponentTreeModel;
import com.fr.design.gui.itree.UITreeUI;
@ -15,7 +13,13 @@ import javax.swing.*;
import javax.swing.tree.TreeCellRenderer;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import java.awt.*;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
@ -222,16 +226,7 @@ public class ComponentTree extends JTree {
if (creator != comp) {
creator.notShowInComponentTree(path);
}
//绝对布局作为body的时候不显示自适应布局父层
if (((XCreator) parent).acceptType(XWAbsoluteBodyLayout.class)) {
if ((parent.getParent() != null)
&& ((XCreator) parent.getParent()).acceptType(XWFitLayout.class)) {
parent = parent.getParent().getParent();
continue;
}
}
parent = parent.getParent();
parent = creator.getParentShow();
}
Object[] components = path.toArray();
return new TreePath(components);

Loading…
Cancel
Save