org.openide.windows.Mode Maven / Gradle / Ivy
/*
* 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.windows;
import java.awt.Image;
import java.awt.Rectangle;
import java.beans.PropertyChangeListener;
import java.io.Serializable;
/** Instances of this interface represent places or containers
* which TopComponent
has to be added to
* in order to be managed by window system.
*
* There is always present default document mode named "editor".
* Modules can add their own modes by declaring them using XML.
*
* Modules can get a set of current modes by calling
* {@link WindowManager#getModes}.
*
*
* Each mode must have a unique name.
*
*
* Important note: Do not provide implementation of this interface unless you are window system provider!
*/
public interface Mode extends Serializable {
/** Name of property for bounds of the mode */
public static final String PROP_BOUNDS = "bounds"; // NOI18N
/** Name of property for the unique programmatic name of this mode.
* @deprecated Do not use. It is redundant, name can not be changed.*/
@Deprecated
public static final String PROP_NAME = "name"; // NOI18N
/** Name of property for the display name of this mode.
* @deprecated Do not use. It is redundant. */
@Deprecated
public static final String PROP_DISPLAY_NAME = "displayName"; // NOI18N
/** @deprecated Only public by accident. */
@Deprecated
/* public static final */ long serialVersionUID = -2650968323666215654L;
/** Get the diplay name of the mode.
* This name will be used by a container to create its title.
* @return human-presentable name of the mode
* @deprecated Do not use. It is redudant. */
@Deprecated
public String getDisplayName();
/** Get the programmatic name of the mode.
* This name should be unique, as it is used to find modes etc.
* @return programmatic name of the mode */
public String getName();
/** Get the icon of the mode. It will be used by component container
* implementations as the icon (e.g. for display in tabs).
* @return the icon of the mode (or null
if no icon was specified)
* @deprecated Do not use. It is redundant. */
@Deprecated
public Image getIcon();
/** Attaches a component to a mode for this workspace.
* If the component is in different mode on this workspace, it is
* removed from the original and moved to this one.
*
* @param c component
* @return true if top component was succesfully docked to this mode, false otherwise
*/
public boolean dockInto(TopComponent c);
/** Allows implementor to specify some restrictive policy as to which
* top components can be docked into this mode.
* @return true if a given top component can be docked into this mode,
* false otherwise
*/
public boolean canDock(TopComponent tc);
/** Sets the bounds of the mode.
* @param s the bounds for the mode
*/
public void setBounds(Rectangle s);
/** Getter for current bounds of the mode.
* @return the bounds of the mode
*/
public Rectangle getBounds();
/** Getter for asociated workspace.
* @return The workspace instance to which is this mode asociated.
* @deprecated Do not use. Worskpaces are not supporeted anymore. */
@Deprecated
public Workspace getWorkspace();
/** Get all top components currently docked into this mode.
* @return the list of components; might be empty, but not null
*/
public TopComponent[] getTopComponents();
/** Add a property change listener.
* @param list the listener to add
*/
public void addPropertyChangeListener(PropertyChangeListener list);
/** Remove a property change listener.
* @param list the listener to remove
*/
public void removePropertyChangeListener(PropertyChangeListener list);
/** Gets selected TopComponent
in this mode.
* @since 4.13 */
public TopComponent getSelectedTopComponent();
/**
* Extension to provide exposure of XML configuration.
*
* @see ExtendingInterfaces
* @since 6.82
*/
public interface Xml extends Mode {
/**
* Generates the Mode configuration as XML.
* @return an XML representation of the Mode's configuration.
* @since 6.82
*/
public String toXml();
}
}