public void actionPerformed(ActionEvent e) {
final Controller controller = Controller.getCurrentController();
final MapModel map = controller.getMap();
final ConditionalStyleModel conditionalStyleModel = getConditionalStyleModel();
Component pane = createConditionalStylePane(map, conditionalStyleModel);
final ModeController modeController = Controller.getCurrentModeController();
modeController.startTransaction();
try{
final int confirmed = JOptionPane.showConfirmDialog(controller.getMapViewManager().getMapViewComponent(), pane, TextUtils.getText(TextUtils.removeMnemonic("ManageNodeConditionalStylesAction.text")), JOptionPane.OK_CANCEL_OPTION,JOptionPane.PLAIN_MESSAGE);
if(JOptionPane.OK_OPTION == confirmed){
modeController.commit();
final IMapSelection selection = controller.getSelection();
final NodeModel selected = selection.getSelected();
modeController.getMapController().nodeChanged(selected,NodeModel.UNKNOWN_PROPERTY,null,null);
for (NodeModel otherSelectedNode : selection.getSelection())
if (selected != otherSelectedNode) {
otherSelectedNode.putExtension(conditionalStyleModel.clone());
modeController.getMapController().nodeChanged(otherSelectedNode, NodeModel.UNKNOWN_PROPERTY,
null, null);
}
}
else{
modeController.rollback();
}
}
catch(RuntimeException ex){
ex.printStackTrace();
modeController.rollback();
}
}