diff --git a/designer_base/src/com/fr/design/data/datapane/ChoosePane.java b/designer_base/src/com/fr/design/data/datapane/ChoosePane.java index d7707a3b94..17ee74f828 100644 --- a/designer_base/src/com/fr/design/data/datapane/ChoosePane.java +++ b/designer_base/src/com/fr/design/data/datapane/ChoosePane.java @@ -7,6 +7,7 @@ import com.fr.data.core.DataCoreUtils; import com.fr.data.core.db.DBUtils; import com.fr.data.core.db.TableProcedure; import com.fr.data.core.db.dialect.DialectFactory; +import com.fr.data.impl.Connection; import com.fr.data.impl.DBTableData; import com.fr.dav.LocalEnv; import com.fr.design.DesignerEnvManager; @@ -17,7 +18,11 @@ import com.fr.design.data.datapane.preview.PreviewLabel; import com.fr.design.data.datapane.preview.PreviewLabel.Previewable; import com.fr.design.data.datapane.preview.PreviewTablePane; import com.fr.design.data.tabledata.Prepare4DataSourceChange; -import com.fr.design.gui.icombobox.*; +import com.fr.design.gui.icombobox.FRTreeComboBox; +import com.fr.design.gui.icombobox.FilterableComboBoxModel; +import com.fr.design.gui.icombobox.UIComboBox; +import com.fr.design.gui.icombobox.UIComboBoxEditor; +import com.fr.design.gui.icombobox.UIComboBoxRenderer; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.layout.FRGUIPaneFactory; @@ -37,7 +42,12 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.PopupMenuEvent; import javax.swing.event.PopupMenuListener; -import javax.swing.tree.*; +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.DefaultTreeCellRenderer; +import javax.swing.tree.DefaultTreeModel; +import javax.swing.tree.TreeCellRenderer; +import javax.swing.tree.TreeNode; +import javax.swing.tree.TreePath; import java.awt.*; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; @@ -45,8 +55,8 @@ import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.ArrayList; import java.util.Enumeration; -import java.util.Iterator; import java.util.List; +import java.util.Map; /** * @author zhou @@ -179,12 +189,8 @@ public class ChoosePane extends BasicBeanPane implements Refresha protected void initDsNameComboBox() { dsNameComboBox.setRefreshingModel(true); ConnectionConfig connectionConfig = ConnectionConfig.getInstance(); - @SuppressWarnings("unchecked") - Iterator datasourceNameIterator = connectionConfig.getConnectionNameIterator(); - List dsList = new ArrayList(); - while (datasourceNameIterator.hasNext()) { - dsList.add((String) datasourceNameIterator.next()); - } + List dsList = new ArrayList<>(); + dsList.addAll(connectionConfig.getConnections().keySet()); FilterableComboBoxModel dsNameComboBoxModel = new FilterableComboBoxModel(dsList); dsNameComboBox.setModel(dsNameComboBoxModel); dsNameComboBox.setRefreshingModel(false); @@ -286,12 +292,9 @@ public class ChoosePane extends BasicBeanPane implements Refresha return null; // peter:选中了当前的零长度的节点,直接返回. } ConnectionConfig connectionConfig = ConnectionConfig.getInstance(); - @SuppressWarnings("unchecked") - Iterator datasourceNameIterator = connectionConfig.getConnectionNameIterator(); - while (datasourceNameIterator.hasNext()) { - String datasourceName = datasourceNameIterator.next(); - if (ComparatorUtils.equals(selectedDSName, datasourceName)) { - return connectionConfig.getConnection(datasourceName); + for (Map.Entry entry: connectionConfig.getConnections().entrySet()) { + if (ComparatorUtils.equals(selectedDSName, entry.getKey())) { + return entry.getValue(); } } return null; diff --git a/designer_base/src/com/fr/design/data/datapane/connect/ConnectionListPane.java b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionListPane.java index 010227c92e..956625f13a 100644 --- a/designer_base/src/com/fr/design/data/datapane/connect/ConnectionListPane.java +++ b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionListPane.java @@ -133,12 +133,9 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh * @param connectionConfig the new datasourceManager. */ public void populate(ConnectionConfig connectionConfig) { - Iterator nameIt = connectionConfig.getConnectionNameIterator(); - List nameObjectList = new ArrayList(); - while (nameIt.hasNext()) { - String name = nameIt.next(); - nameObjectList.add(new NameObject(name, connectionConfig.getConnection(name))); + for (Map.Entry entry : connectionConfig.getConnections().entrySet()) { + nameObjectList.add(new NameObject(entry.getKey(), entry.getValue())); } this.populate(nameObjectList.toArray(new NameObject[nameObjectList.size()])); @@ -153,11 +150,11 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh NameObject[] res_array = new NameObject[res.length]; java.util.Arrays.asList(res).toArray(res_array); - connectionConfig.clearAllConnection(); + connectionConfig.removeAllConnection(); for (int i = 0; i < res_array.length; i++) { NameObject nameObject = res_array[i]; - connectionConfig.putConnection(nameObject.getName(), (Connection) nameObject.getObject()); + connectionConfig.addConnection(nameObject.getName(), (Connection) nameObject.getObject()); } } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/data/datapane/connect/ConnectionManagerPane.java b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionManagerPane.java index 6278348206..aa0980ad58 100644 --- a/designer_base/src/com/fr/design/data/datapane/connect/ConnectionManagerPane.java +++ b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionManagerPane.java @@ -1,17 +1,14 @@ package com.fr.design.data.datapane.connect; -import com.fr.base.FRContext; import com.fr.design.gui.frpane.LoadingBasicPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.file.ConnectionConfig; import com.fr.general.Inter; -import com.fr.stable.project.ProjectConstants; import javax.swing.*; import java.awt.*; -import java.io.File; import java.util.HashMap; public class ConnectionManagerPane extends LoadingBasicPane implements ConnectionShowPane { @@ -49,8 +46,8 @@ public class ConnectionManagerPane extends LoadingBasicPane implements Connectio } public void populate(ConnectionConfig datasourceManager) { - this.connectionTextField.setText(FRContext.getCurrentEnv().getPath() + File.separator + ProjectConstants.RESOURCES_NAME - + File.separator + datasourceManager.fileName()); +// this.connectionTextField.setText(FRContext.getCurrentEnv().getPath() + File.separator + ProjectConstants.RESOURCES_NAME +// + File.separator + datasourceManager.fileName()); this.connectionListPane.populate(datasourceManager); } diff --git a/designer_base/src/com/fr/design/formula/FunctionConstants.java b/designer_base/src/com/fr/design/formula/FunctionConstants.java index 2df91fa464..7b826bc08f 100644 --- a/designer_base/src/com/fr/design/formula/FunctionConstants.java +++ b/designer_base/src/com/fr/design/formula/FunctionConstants.java @@ -2,6 +2,15 @@ package com.fr.design.formula; import com.fr.base.FRContext; import com.fr.file.FunctionConfig; +import com.fr.function.AVERAGE; +import com.fr.function.CHAR; +import com.fr.function.COUNT; +import com.fr.function.DATE; +import com.fr.function.MAX; +import com.fr.function.MIN; +import com.fr.function.RANGE; +import com.fr.function.SUM; +import com.fr.function.TIME; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import com.fr.plugin.ExtraClassManager;