diff --git a/designer_base/src/com/fr/design/DesignModelAdapter.java b/designer_base/src/com/fr/design/DesignModelAdapter.java index 7c2c71806..8e35dbf38 100644 --- a/designer_base/src/com/fr/design/DesignModelAdapter.java +++ b/designer_base/src/com/fr/design/DesignModelAdapter.java @@ -1,9 +1,5 @@ package com.fr.design; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - import com.fr.base.Parameter; import com.fr.base.io.IOFile; import com.fr.data.TableDataSource; @@ -13,6 +9,10 @@ import com.fr.form.ui.Widget; import com.fr.general.ComparatorUtils; import com.fr.stable.js.WidgetName; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + /** * 当前的设计器模式 * @@ -29,6 +29,14 @@ public abstract class DesignModelAdapter { this.tc = tc; } + public DesignModelAdapter getDesignModelAdapter() { + return tc; + } + + public void setDesignModelAdapter(DesignModelAdapter tc) { + this.tc = tc; + } + /** * 初始化数据集的list * diff --git a/designer_base/src/com/fr/design/data/datapane/TableDataTree.java b/designer_base/src/com/fr/design/data/datapane/TableDataTree.java index 2b2238a9d..bb8553d30 100644 --- a/designer_base/src/com/fr/design/data/datapane/TableDataTree.java +++ b/designer_base/src/com/fr/design/data/datapane/TableDataTree.java @@ -31,7 +31,6 @@ public class TableDataTree extends UserObjectRefreshJTree { this.setCellRenderer(tableDataTreeCellRenderer); this.setEditable(false); } - // CellRenderer private DefaultTreeCellRenderer tableDataTreeCellRenderer = new DefaultTreeCellRenderer() { private static final long serialVersionUID = 1L; @@ -82,6 +81,13 @@ public class TableDataTree extends UserObjectRefreshJTree { } }; + public DefaultTreeCellRenderer getTableDataTreeCellRenderer() { + return tableDataTreeCellRenderer; + } + + public void setTableDataTreeCellRenderer(DefaultTreeCellRenderer tableDataTreeCellRenderer) { + this.tableDataTreeCellRenderer = tableDataTreeCellRenderer; + } protected void refreshTreeNode(ExpandMutableTreeNode eTreeNode, String childName) { if (interceptRefresh(eTreeNode)) { diff --git a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java index a0b4fb3bf..84c56e794 100644 --- a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java +++ b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java @@ -52,9 +52,9 @@ import java.util.Map; public class TableDataTreePane extends DockingView implements ResponseDataSourceChange { - private static final int PROCEDURE_NAME_INDEX = 4; - private static final int TEMPLATE_TABLE_DATA = 0; - private static final int SERVER_TABLE_DATA = 1; + protected static final int PROCEDURE_NAME_INDEX = 4; + protected static final int TEMPLATE_TABLE_DATA = 0; + protected static final int SERVER_TABLE_DATA = 1; private static final long serialVersionUID = -12168467370000617L; private static TableDataTreePane singleton = new TableDataTreePane(); private String type = ""; @@ -77,7 +77,7 @@ public class TableDataTreePane extends DockingView implements ResponseDataSource return singleton; } - private static TableDataTree dataTree; + private TableDataTree dataTree; private TableDataSourceOP op; private MenuDef addMenuDef; @@ -147,6 +147,74 @@ public class TableDataTreePane extends DockingView implements ResponseDataSource checkButtonEnabled(); } + public void setDataTree(TableDataTree dataTree) { + this.dataTree = dataTree; + } + + public TableDataSourceOP getOp() { + return op; + } + + public void setOp(TableDataSourceOP op) { + this.op = op; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public MenuDef getAddMenuDef() { + return addMenuDef; + } + + public void setAddMenuDef(MenuDef addMenuDef) { + this.addMenuDef = addMenuDef; + } + + public EditAction getEditAction() { + return editAction; + } + + public void setEditAction(EditAction editAction) { + this.editAction = editAction; + } + + public RemoveAction getRemoveAction() { + return removeAction; + } + + public void setRemoveAction(RemoveAction removeAction) { + this.removeAction = removeAction; + } + + public DesignModelAdapter getTc() { + return tc; + } + + public void setTc(DesignModelAdapter tc) { + this.tc = tc; + } + + public PreviewTableDataAction getPreviewTableDataAction() { + return previewTableDataAction; + } + + public void setPreviewTableDataAction(PreviewTableDataAction previewTableDataAction) { + this.previewTableDataAction = previewTableDataAction; + } + + public ConnectionTableAction getConnectionTableAction() { + return connectionTableAction; + } + + public void setConnectionTableAction(ConnectionTableAction connectionTableAction) { + this.connectionTableAction = connectionTableAction; + } + private KeyAdapter getTableTreeNodeListener() { return new KeyAdapter() { @@ -227,11 +295,11 @@ public class TableDataTreePane extends DockingView implements ResponseDataSource /** * 刷新 */ - public static void refresh() { + public void refresh() { dataTree.refresh(); } - private void checkButtonEnabled() { + protected void checkButtonEnabled() { // august:BUG 9344 addMenuDef.setEnabled(true); connectionTableAction.setEnabled(FRContext.getCurrentEnv() != null && FRContext.getCurrentEnv().isRoot()); diff --git a/designer_base/src/com/fr/design/fun/TableDataTreePaneProcessor.java b/designer_base/src/com/fr/design/fun/TableDataTreePaneProcessor.java new file mode 100644 index 000000000..066038568 --- /dev/null +++ b/designer_base/src/com/fr/design/fun/TableDataTreePaneProcessor.java @@ -0,0 +1,22 @@ +package com.fr.design.fun; + +import com.fr.design.data.datapane.TableDataTreePane; +import com.fr.stable.fun.Level; + +/** + * 自定义的模板(服务器)数据集的树样式接口 el:分组样式 + * Coder: zack + * Date: 2016/4/18 + * Time: 9:04 + */ +public interface TableDataTreePaneProcessor extends Level { + String XML_TAG = "TableDataTreePaneProcessor"; + + int CURRENT_LEVEL = 1; + /** + * 创建数据集面板 + * @return 数据集面板 + */ + TableDataTreePane createTableDataTreePane(); + +} diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractTDTreePaneProcessor.java b/designer_base/src/com/fr/design/fun/impl/AbstractTDTreePaneProcessor.java new file mode 100644 index 000000000..635739a07 --- /dev/null +++ b/designer_base/src/com/fr/design/fun/impl/AbstractTDTreePaneProcessor.java @@ -0,0 +1,15 @@ +package com.fr.design.fun.impl; + +import com.fr.design.fun.TableDataTreePaneProcessor; + +/** + * Coder: zack + * Date: 2016/4/18 + * Time: 10:30 + */ +public abstract class AbstractTDTreePaneProcessor implements TableDataTreePaneProcessor { + @Override + public int currentAPILevel() { + return CURRENT_LEVEL; + } +} diff --git a/designer_base/src/com/fr/design/mainframe/WestRegionContainerPane.java b/designer_base/src/com/fr/design/mainframe/WestRegionContainerPane.java index 36c2584d0..0ed5556c2 100644 --- a/designer_base/src/com/fr/design/mainframe/WestRegionContainerPane.java +++ b/designer_base/src/com/fr/design/mainframe/WestRegionContainerPane.java @@ -1,11 +1,15 @@ package com.fr.design.mainframe; -import com.fr.design.data.datapane.TableDataTreePane; import com.fr.design.DesignModelAdapter; import com.fr.design.DesignerEnvManager; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.data.datapane.TableDataTreePane; +import com.fr.design.fun.TableDataTreePaneProcessor; import com.fr.design.gui.icontainer.UIResizableContainer; import com.fr.stable.Constants; +import javax.swing.*; + public class WestRegionContainerPane extends UIResizableContainer { private static WestRegionContainerPane THIS; @@ -16,15 +20,23 @@ public class WestRegionContainerPane extends UIResizableContainer { */ public static final WestRegionContainerPane getInstance() { if (THIS == null) { - THIS = new WestRegionContainerPane(); + TableDataTreePane tableDataTreePane = null; + TableDataTreePaneProcessor treePaneProcessor = ExtraDesignClassManager.getInstance().getTableDataTreePaneProcessor(); + if (treePaneProcessor != null) { + tableDataTreePane = treePaneProcessor.createTableDataTreePane(); + } else { + tableDataTreePane = TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()); + } + THIS = new WestRegionContainerPane(tableDataTreePane); THIS.setLastToolPaneY(DesignerEnvManager.getEnvManager().getLastWestRegionToolPaneY()); THIS.setLastContainerWidth(DesignerEnvManager.getEnvManager().getLastWestRegionContainerWidth()); } return THIS; } - public WestRegionContainerPane() { - super(DesignerFrameFileDealerPane.getInstance(), TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()), Constants.RIGHT); + public WestRegionContainerPane(JComponent pane) { + super(DesignerFrameFileDealerPane.getInstance(), pane, Constants.RIGHT); setContainerWidth(165); } + } \ No newline at end of file