1/* 2 * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24package com.sun.hotspot.igv.filterwindow.actions; 25 26import com.sun.hotspot.igv.filter.Filter; 27import com.sun.hotspot.igv.filterwindow.FilterTopComponent; 28import javax.swing.Action; 29import javax.swing.JOptionPane; 30import org.openide.nodes.Node; 31import org.openide.util.HelpCtx; 32import org.openide.util.NbBundle; 33import org.openide.util.actions.CookieAction; 34import org.openide.windows.WindowManager; 35 36/** 37 * 38 * @author Thomas Wuerthinger 39 */ 40public final class RemoveFilterAction extends CookieAction { 41 42 @Override 43 protected void performAction(Node[] activatedNodes) { 44 Object[] options = {"Yes", 45 "No", 46 "Cancel" 47 }; 48 int n = JOptionPane.showOptionDialog(WindowManager.getDefault().getMainWindow(), 49 "Do you really want to delete " + activatedNodes.length + " filter(s)?", "Delete Filters", 50 JOptionPane.YES_NO_CANCEL_OPTION, 51 JOptionPane.QUESTION_MESSAGE, 52 null, 53 options, 54 options[2]); 55 56 if (n == JOptionPane.YES_OPTION) { 57 for (int i = 0; i < activatedNodes.length; i++) { 58 FilterTopComponent.findInstance().removeFilter(activatedNodes[i].getLookup().lookup(Filter.class)); 59 } 60 } 61 } 62 63 @Override 64 protected int mode() { 65 return CookieAction.MODE_ALL; 66 } 67 68 @Override 69 public String getName() { 70 return NbBundle.getMessage(RemoveFilterAction.class, "CTL_RemoveFilterAction"); 71 } 72 73 public RemoveFilterAction() { 74 putValue(Action.SHORT_DESCRIPTION, "Remove selected filter"); 75 } 76 77 @Override 78 protected Class[] cookieClasses() { 79 return new Class[]{ 80 Filter.class 81 }; 82 } 83 84 @Override 85 protected void initialize() { 86 super.initialize(); 87 putValue("noIconInMenu", Boolean.TRUE); 88 } 89 90 @Override 91 protected String iconResource() { 92 return "com/sun/hotspot/igv/filterwindow/images/minus.png"; 93 } 94 95 @Override 96 public HelpCtx getHelpCtx() { 97 return HelpCtx.DEFAULT_HELP; 98 } 99 100 @Override 101 protected boolean asynchronous() { 102 return false; 103 } 104} 105