|
|
|
@ -7,6 +7,7 @@ import com.fr.data.impl.storeproc.StoreProcedure;
|
|
|
|
|
import com.fr.design.data.BasicTableDataUtils; |
|
|
|
|
import com.fr.design.data.DesignTableDataManager; |
|
|
|
|
import com.fr.design.dialog.FineJOptionPane; |
|
|
|
|
import com.fr.design.gui.NameInspector; |
|
|
|
|
import com.fr.design.gui.controlpane.JListControlPane; |
|
|
|
|
import com.fr.design.gui.controlpane.NameableCreator; |
|
|
|
|
import com.fr.design.gui.ilist.ListModelElement; |
|
|
|
@ -34,7 +35,7 @@ import java.util.Map;
|
|
|
|
|
*/ |
|
|
|
|
public class TableDataPaneListPane extends JListControlPane implements TableDataPaneController { |
|
|
|
|
private boolean isNamePermitted = true; |
|
|
|
|
private Map<String, String> dsNameChangedMap = new HashMap<String, String>(); |
|
|
|
|
private Map<String, String> dsNameChangedMap = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
public TableDataPaneListPane() { |
|
|
|
|
super(); |
|
|
|
@ -43,11 +44,16 @@ public class TableDataPaneListPane extends JListControlPane implements TableData
|
|
|
|
|
@Override |
|
|
|
|
public void propertyChange() { |
|
|
|
|
isNamePermitted = true; |
|
|
|
|
String tempName = getEditingName(); |
|
|
|
|
if (ComparatorUtils.equals(tempName, selectedName)) { |
|
|
|
|
//说明双击之后又取消了,啥也不用做
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
TableDataSource source = DesignTableDataManager.getEditingTableDataSource(); |
|
|
|
|
String[] allDSNames = DesignTableDataManager.getAllDSNames(source); |
|
|
|
|
String[] allListNames = nameableList.getAllNames(); |
|
|
|
|
allListNames[nameableList.getSelectedIndex()] = StringUtils.EMPTY; |
|
|
|
|
String tempName = getEditingName(); |
|
|
|
|
allListNames[editingIndex] = StringUtils.EMPTY; |
|
|
|
|
|
|
|
|
|
Object editingType = getEditingType(); |
|
|
|
|
|
|
|
|
|
if (!BasicTableDataUtils.checkName(tempName)) { |
|
|
|
@ -67,9 +73,8 @@ public class TableDataPaneListPane extends JListControlPane implements TableData
|
|
|
|
|
setIllegalIndex(editingIndex); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!ComparatorUtils.equals(tempName, selectedName) |
|
|
|
|
&& isNameRepeated(new List[]{Arrays.asList(allDSNames), Arrays.asList(allListNames)}, tempName)) { |
|
|
|
|
boolean isRepeated = isNameRepeated(new List[]{Arrays.asList(allDSNames), Arrays.asList(allListNames)}, tempName); |
|
|
|
|
if (isRepeated) { |
|
|
|
|
isNamePermitted = false; |
|
|
|
|
nameableList.stopEditing(); |
|
|
|
|
FineJOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(TableDataPaneListPane.this), Toolkit.i18nText("Fine-Design_Basic_Table_Data_Duplicate_Name_Tips", tempName)); |
|
|
|
@ -81,11 +86,7 @@ public class TableDataPaneListPane extends JListControlPane implements TableData
|
|
|
|
|
setIllegalIndex(editingIndex); |
|
|
|
|
} |
|
|
|
|
if (nameableList.getSelectedValue() instanceof ListModelElement) { |
|
|
|
|
Nameable selected = ((ListModelElement) nameableList.getSelectedValue()).wrapper; |
|
|
|
|
if (!ComparatorUtils.equals(tempName, selected.getName()) && !isNameRepeated(new List[]{Arrays.asList(allDSNames), Arrays.asList(allListNames)}, tempName)) { |
|
|
|
|
rename(selected.getName(), tempName); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
rename(selectedName, isRepeated ? NameInspector.ILLEGAL_NAME_HOLDER : tempName); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
@ -93,6 +94,13 @@ public class TableDataPaneListPane extends JListControlPane implements TableData
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void rename(String oldName, String newName) { |
|
|
|
|
//如果a改成了b,b又被改成了c,就认为是a改成了c
|
|
|
|
|
for (Map.Entry<String, String> entry : dsNameChangedMap.entrySet()) { |
|
|
|
|
if (StringUtils.equals(oldName, entry.getValue())) { |
|
|
|
|
oldName = entry.getKey(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
dsNameChangedMap.put(oldName, newName); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -192,7 +200,7 @@ public class TableDataPaneListPane extends JListControlPane implements TableData
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
populate(nameObjectList.toArray(new NameObject[nameObjectList.size()])); |
|
|
|
|
populate(nameObjectList.toArray(new NameObject[0])); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -212,7 +220,7 @@ public class TableDataPaneListPane extends JListControlPane implements TableData
|
|
|
|
|
nameObjectList.add(new NameObject(name, ProcedureConfig.getInstance().getProcedure(name))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
populate(nameObjectList.toArray(new NameObject[nameObjectList.size()])); |
|
|
|
|
populate(nameObjectList.toArray(new NameObject[0])); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -220,7 +228,7 @@ public class TableDataPaneListPane extends JListControlPane implements TableData
|
|
|
|
|
tableDataConfig.removeAllTableData(); |
|
|
|
|
ProcedureConfig.getInstance().removeAllProcedure(); |
|
|
|
|
Nameable[] tableDataArray = this.update(); |
|
|
|
|
Map<String,TableData> tableDataMap = new LinkedHashMap<String,TableData>(); |
|
|
|
|
Map<String, TableData> tableDataMap = new LinkedHashMap<String, TableData>(); |
|
|
|
|
for (int i = 0; i < tableDataArray.length; i++) { |
|
|
|
|
NameObject nameObject = (NameObject) tableDataArray[i]; |
|
|
|
|
tableDataMap.put(nameObject.getName(), (TableData) nameObject.getObject()); |
|
|
|
|