# DeleteFavoriteAction.java Sample

This topic inludes the source code for the DeleteFavoriteAction.java Sample.

## Sample Location

This sample is located in the following directory in your WebLogic Workshop installation:

BEA_HOME/weblogic81/samples/workshop/ExtensionDevKit/IdeDevKit/MenuItems/src/ideExtensions/menuItems/

## Sample Source Code

`01 package ideExtensions.menuItems; 02 03 import com.bea.ide.Application; 04 import com.bea.ide.actions.ActionSvc; 05 import com.bea.ide.actions.DefaultAction; 06 07 import java.awt.event.ActionEvent; 08 import java.util.prefs.Preferences; 09 import javax.swing.JComboBox; 10 import javax.swing.JLabel; 11 import javax.swing.JOptionPane; 12 import javax.swing.JPanel; 13 14 /** 15 * An action behind a "Delete Favorite" menu command. See the comments 16 * in AddFavoriteAction for more information on the action API. 17 */ 18 public class DeleteFavoriteAction extends DefaultAction 19 { 20 /** 21 * Deletes an item from the "favorites" menu. This method is 22 * called by the IDE when the user clicks the "Delete Favorite" 23 * menu command. 24 * 25 * The extension.xml specifies this class as the logic for the "Delete 26 * Favorites" menu command. 27 * 28 * @param e The menu click event that occurred in the IDE. 29 */ 30 public void actionPerformed(ActionEvent e) 31 { 32 // Start creation of a panel for display in a JOptionPane. 33 JPanel panel = new JPanel(); 34 JLabel label = new JLabel("Yo. Which link gets dissed?"); 35 JComboBox box = new JComboBox(); 36 box.setEditable(false); 37 38 // Grab the node that contains all the user prefs for favorite links. 39 Preferences prefs = 40 Application.get().userNodeForPackage(Application.class).node("favorites"); 41 42 // Populate the JComboBox with the individual links 43 int favnum = 0; 44 while (prefs.get("favorites" + (++favnum), null) != null) 45 { 46 box.addItem(prefs.get("favorites" + favnum, null)); 47 } 48 49 // Finish creation of the panel for display in the following JOptionPane. 50 panel.add(label); 51 panel.add(box); 52 53 if (JOptionPane.showConfirmDialog(Application.getRootFrame(), 54 panel, 55 "Remove Favorite", 56 JOptionPane.OK_CANCEL_OPTION, 57 JOptionPane.PLAIN_MESSAGE, 58 null) == JOptionPane.OK_OPTION) 59 { 60 // Remove the selected link from the node. 61 int index = box.getSelectedIndex() + 1; 62 prefs.remove("favorites" + index); 63 64 // Shift any remaining links up one in the indexing. 65 while (prefs.get("favorites" + (++index), null) != null) 66 { 67 String value = prefs.get("favorites" + index, null); 68 prefs.remove("favorites" + index); 69 prefs.put("favorites" + (index - 1), value); 70 } 71 72 // Refresh the menu generator to remove the deleted entry. 73 ActionSvc.get().refreshGenerator(FavoritesGenerator.class.getName()); 74 } 75 } 76 }`