/*******************************************************************************
* Copyright (c) 1998, 2015 Oracle and/or its affiliates. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Oracle - initial API and implementation from Oracle TopLink
******************************************************************************/
package org.eclipse.persistence.tools.workbench.framework.app;
import java.awt.Component;
import javax.swing.Icon;
import org.eclipse.persistence.tools.workbench.framework.context.WorkbenchContext;
/**
* Define the node methods needed by an editor view.
*/
public interface EditorNode {
/**
* Return a properties page populated with the node's "user object"
* This page will be displayed in an editor view.
*/
Component propertiesPage(WorkbenchContext workbenchContext);
/**
* Return an icon that can be used in the properties page title bar.
* When the icon changes, the model should fire
* the appropriate change notification:
* this.firePropertyChanged(PROPERTIES_PAGE_TITLE_ICON_PROPERTY, oldPropertiesPageTitleIcon, this.propertiesPageTitleIcon());
*/
Icon propertiesPageTitleIcon();
String PROPERTIES_PAGE_TITLE_ICON_PROPERTY = "propertiesPageTitleIcon";
/**
* Return a string that can be used in the properties page title bar.
* When the title changes, the model should fire
* the appropriate change notification:
* this.firePropertyChanged(PROPERTIES_PAGE_TITLE_TEXT_PROPERTY, oldPropertiesPageTitleText, this.propertiesPageTitleText());
*/
String propertiesPageTitleText();
String PROPERTIES_PAGE_TITLE_TEXT_PROPERTY = "propertiesPageTitleText";
/**
* Release the previously-provided properties page;
* it is no longer needed by the editor view.
*/
void releasePropertiesPage(Component propertiesPage);
}