public PropertyAction(RADProperty<?> aProperty) { super(); property = (RADProperty<Object>) aProperty; String name = (String) aProperty.getValue("actionName"); // NOI18N if (name == null) { StringBuilder sb = new StringBuilder(aProperty.getName()); sb.setCharAt(0, Character.toUpperCase(sb.charAt(0))); name = sb.toString(); } putValue(Action.NAME, name); }
private Object[] buttons() { ResourceBundle bundle = NbBundle.getBundle(PropertyAction.class); JButton okButton = new JButton(); Mnemonics.setLocalizedText(okButton, bundle.getString("CTL_OK")); // NOI18N okButton .getAccessibleContext() .setAccessibleDescription(bundle.getString("ACSD_CTL_OK")); // NOI18N okButton.setActionCommand(OK_COMMAND); JButton cancelButton = new JButton(); Mnemonics.setLocalizedText(cancelButton, bundle.getString("CTL_Cancel")); // NOI18N cancelButton .getAccessibleContext() .setAccessibleDescription(bundle.getString("ACSD_CTL_Cancel")); // NOI18N cancelButton.setActionCommand(CANCEL_COMMAND); if (property.isDefaultValue()) { if ("Aqua".equals(UIManager.getLookAndFeel().getID())) { return new Object[] {cancelButton, okButton}; } else { return new Object[] {okButton, cancelButton}; } } else { JButton restoreButton = new JButton(); Mnemonics.setLocalizedText(restoreButton, bundle.getString("CTL_RestoreDefault")); // NOI18N restoreButton .getAccessibleContext() .setAccessibleDescription(bundle.getString("ACSD_CTL_RestoreDefault")); // NOI18N restoreButton.setActionCommand(RESTORE_COMMAND); if ("Aqua".equals(UIManager.getLookAndFeel().getID())) { return new Object[] {restoreButton, cancelButton, okButton}; } else { return new Object[] {okButton, restoreButton, cancelButton}; } } }
@Override public void actionPerformed(java.awt.event.ActionEvent e) { try { PropertyEditor propEd = property.getPropertyEditor(); propEd.setValue(property.getValue()); final Component custEditor = propEd.getCustomEditor(); Object[] options = buttons(); DialogDescriptor descriptor = new DialogDescriptor( custEditor, (String) getValue(Action.NAME), true, options, DialogDescriptor.CANCEL_OPTION, DialogDescriptor.DEFAULT_ALIGN, HelpCtx.DEFAULT_HELP, (ActionEvent e1) -> { try { String action = e1.getActionCommand(); switch (action) { case OK_COMMAND: Object value = property.getPropertyEditor().getValue(); property.setValue(value); break; case RESTORE_COMMAND: property.restoreDefaultValue(); break; } dialog.dispose(); } catch (Exception ex) { NotifyDescriptor descriptor2 = new NotifyDescriptor.Message( NbBundle.getMessage(PropertyAction.class, "MSG_InvalidValue")); // NOI18N DialogDisplayer.getDefault().notify(descriptor2); } }); descriptor.setClosingOptions(new Object[0]); dialog = DialogDisplayer.getDefault().createDialog(descriptor); dialog.setVisible(true); dialog = null; } catch (Exception ex) { ErrorManager.getDefault().notify(ex); } }
public static PropertyAction createIfEditable(RADProperty<?> property) { PropertyEditor propEd = property.getPropertyEditor(); return propEd != null && propEd.supportsCustomEditor() ? new PropertyAction(property) : null; }