All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openide.util.actions.ActionPresenterProvider Maven / Gradle / Ivy

The newest version!
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

package org.openide.util.actions;

import java.awt.Component;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import org.openide.util.Lookup;

/** Provider of action presentations. Based on type of the action
 * should be able to derive its menu, popup menu and toolbar
 * presenter.
 * 

* In order to provide greater flexibility this is made as a pluggable component * to allow other parts of the system to provide more enhanced * visualizations. * @since 8.1 */ public abstract class ActionPresenterProvider extends Object { /** Gets the default implementation from lookup. * @return the presenter */ public static ActionPresenterProvider getDefault () { ActionPresenterProvider ap = Lookup.getDefault().lookup(ActionPresenterProvider.class); return ap == null ? new Default () : ap; } /** Subclass constructor. */ protected ActionPresenterProvider() {} /** Creates a default empty implementation of popup menu. * @return popup menu */ public abstract JPopupMenu createEmptyPopup(); /** Creates a menu item that can present this action in a {@link javax.swing.JMenu}. * @param action the action to represent * @return the representation for this action */ public abstract JMenuItem createMenuPresenter (Action action); /** Get a menu item that can present this action in a {@link javax.swing.JPopupMenu}. * @param action the action to represent * @return the representation for this action */ public abstract JMenuItem createPopupPresenter (Action action); /** Get a component that can present this action in a {@link javax.swing.JToolBar}. * @param action the action to represent * @return the representation for this action */ public abstract Component createToolbarPresenter (Action action); /** * Used for implementation of DynamicMenuContent. * @param comp a component * @return zero or more components to display in its place */ public abstract Component[] convertComponents(Component comp); // // Default implementation of the the presenter // private static final class Default extends ActionPresenterProvider { public JMenuItem createMenuPresenter(Action action) { return new JMenuItem(action); } public JMenuItem createPopupPresenter(Action action) { return new JMenuItem(action); } public Component createToolbarPresenter(Action action) { return new JButton(action); } public JPopupMenu createEmptyPopup() { return new JPopupMenu(); } public Component[] convertComponents(Component comp) { return new Component[] {comp}; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy