@Override public void setValueAt(Object value, int row, int col) { switch (col) { case USERNAMECOL: // Directly changing the username should only be possible if the username was previously // null or "" // check to see if user name already exists if (((String) value).equals("")) { value = null; } else { NamedBean nB = getByUserName((String) value); if (nB != null) { log.error("User name is not unique " + value); String msg = Bundle.getMessage("WarningUserName", new Object[] {("" + value)}); JOptionPane.showMessageDialog( null, msg, Bundle.getMessage("WarningTitle"), JOptionPane.ERROR_MESSAGE); return; } } NamedBean nBean = getBySystemName(sysNameList.get(row)); nBean.setUserName((String) value); if (nbMan.inUse(sysNameList.get(row), nBean)) { String msg = Bundle.getMessage( "UpdateToUserName", new Object[] {getBeanType(), value, sysNameList.get(row)}); int optionPane = JOptionPane.showConfirmDialog( null, msg, Bundle.getMessage("UpdateToUserNameTitle"), JOptionPane.YES_NO_OPTION); if (optionPane == JOptionPane.YES_OPTION) { // This will update the bean reference from the systemName to the userName try { nbMan.updateBeanFromSystemToUser(nBean); } catch (JmriException ex) { // We should never get an exception here as we already check that the username is not // valid } } } fireTableRowsUpdated(row, row); break; case COMMENTCOL: getBySystemName(sysNameList.get(row)).setComment((String) value); fireTableRowsUpdated(row, row); break; case VALUECOL: // button fired, swap state NamedBean t = getBySystemName(sysNameList.get(row)); clickOn(t); break; case DELETECOL: // button fired, delete Bean deleteBean(row, col); break; default: break; } }
/** Generic method to change the user name of a Bean */ public void renameBean(String _newName) { NamedBean nBean = bean; String oldName = nBean.getUserName(); String value = _newName; if (value.equals(oldName)) { // name not changed. return; } else { NamedBean nB = getByUserName(value); if (nB != null) { log.error("User name is not unique " + value); // NOI18N String msg; msg = java.text.MessageFormat.format( Bundle.getMessage("WarningUserName"), new Object[] {("" + value)}); JOptionPane.showMessageDialog( null, msg, Bundle.getMessage("WarningTitle"), JOptionPane.ERROR_MESSAGE); return; } } nBean.setUserName(value); if (!value.equals("")) { if (oldName == null || oldName.equals("")) { if (!nbMan.inUse(nBean.getSystemName(), nBean)) { return; } String msg = java.text.MessageFormat.format( Bundle.getMessage("UpdateToUserName"), new Object[] {getBeanType(), value, nBean.getSystemName()}); int optionPane = JOptionPane.showConfirmDialog( null, msg, Bundle.getMessage("UpdateToUserNameTitle"), JOptionPane.YES_NO_OPTION); if (optionPane == JOptionPane.YES_OPTION) { // This will update the bean reference from the systemName to the userName try { nbMan.updateBeanFromSystemToUser(nBean); } catch (jmri.JmriException ex) { // We should never get an exception here as we already check that the username is not // valid } } } else { nbMan.renameBean(oldName, value, nBean); } } else { // This will update the bean reference from the old userName to the SystemName nbMan.updateBeanFromUserToSystem(nBean); } }
public void moveBean(int row, int column) { final NamedBean t = getBySystemName(sysNameList.get(row)); String currentName = t.getUserName(); NamedBean oldNameBean = getBySystemName(sysNameList.get(row)); if ((currentName == null) || currentName.equals("")) { JOptionPane.showMessageDialog(null, "Can not move an empty UserName"); return; } JComboBox<String> box = new JComboBox<>(); List<String> nameList = getManager().getSystemNameList(); for (int i = 0; i < nameList.size(); i++) { NamedBean nb = getBySystemName(nameList.get(i)); // Only add items that do not have a username assigned. if (nb.getDisplayName().equals(nameList.get(i))) { box.addItem(nameList.get(i)); } } int retval = JOptionPane.showOptionDialog( null, "Move " + getBeanType() + " " + currentName + " from " + oldNameBean.getSystemName(), "Move UserName", 0, JOptionPane.INFORMATION_MESSAGE, null, new Object[] {"Cancel", "OK", box}, null); log.debug( "Dialog value " + retval + " selected " + box.getSelectedIndex() + ":" + box.getSelectedItem()); if (retval != 1) { return; } String entry = (String) box.getSelectedItem(); NamedBean newNameBean = getBySystemName(entry); if (oldNameBean != newNameBean) { oldNameBean.setUserName(""); newNameBean.setUserName(currentName); InstanceManager.getDefault(NamedBeanHandleManager.class) .moveBean(oldNameBean, newNameBean, currentName); if (nbMan.inUse(newNameBean.getSystemName(), newNameBean)) { String msg = Bundle.getMessage( "UpdateToUserName", new Object[] {getBeanType(), currentName, sysNameList.get(row)}); int optionPane = JOptionPane.showConfirmDialog( null, msg, Bundle.getMessage("UpdateToUserNameTitle"), JOptionPane.YES_NO_OPTION); if (optionPane == JOptionPane.YES_OPTION) { try { nbMan.updateBeanFromSystemToUser(newNameBean); } catch (JmriException ex) { // We should never get an exception here as we already check that the username is not // valid } } } fireTableRowsUpdated(row, row); InstanceManager.getDefault(UserPreferencesManager.class) .showInfoMessage( "Reminder", getBeanType() + " " + Bundle.getMessage("UpdateComplete"), getMasterClassName(), "remindSaveReLoad"); // JOptionPane.showMessageDialog(null, getBeanType() + " " + // Bundle.getMessage("UpdateComplete")); } }
public void renameBean(int row, int column) { NamedBean nBean = getBySystemName(sysNameList.get(row)); String oldName = nBean.getUserName(); JTextField _newName = new JTextField(20); _newName.setText(oldName); Object[] renameBeanOption = {"Cancel", "OK", _newName}; int retval = JOptionPane.showOptionDialog( null, "Rename UserName From " + oldName, "Rename " + getBeanType(), 0, JOptionPane.INFORMATION_MESSAGE, null, renameBeanOption, renameBeanOption[2]); if (retval != 1) { return; } String value = _newName.getText().trim(); if (value.equals(oldName)) { // name not changed. return; } else { NamedBean nB = getByUserName(value); if (nB != null) { log.error("User name is not unique " + value); String msg = Bundle.getMessage("WarningUserName", new Object[] {("" + value)}); JOptionPane.showMessageDialog( null, msg, Bundle.getMessage("WarningTitle"), JOptionPane.ERROR_MESSAGE); return; } } nBean.setUserName(value); fireTableRowsUpdated(row, row); if (!value.equals("")) { if (oldName == null || oldName.equals("")) { if (!nbMan.inUse(sysNameList.get(row), nBean)) { return; } String msg = Bundle.getMessage( "UpdateToUserName", new Object[] {getBeanType(), value, sysNameList.get(row)}); int optionPane = JOptionPane.showConfirmDialog( null, msg, Bundle.getMessage("UpdateToUserNameTitle"), JOptionPane.YES_NO_OPTION); if (optionPane == JOptionPane.YES_OPTION) { // This will update the bean reference from the systemName to the userName try { nbMan.updateBeanFromSystemToUser(nBean); } catch (JmriException ex) { // We should never get an exception here as we already check that the username is not // valid } } } else { nbMan.renameBean(oldName, value, nBean); } } else { // This will update the bean reference from the old userName to the SystemName nbMan.updateBeanFromUserToSystem(nBean); } }