01: /*******************************************************************************
02: * Copyright (c) 2000, 2007 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: * Chris Gross chris.gross@us.ibm.com Bug 107443
11: *******************************************************************************/package org.eclipse.ui;
12:
13: /**
14: * An <code>IPlaceholderFolderLayout</code> is used to define the initial
15: * view placeholders within a folder.
16: * The folder itself is contained within an <code>IPageLayout</code>.
17: * <p>
18: * This interface is not intended to be implemented by clients.
19: * </p>
20: *
21: * @see IPageLayout#createPlaceholderFolder
22: * @since 2.0
23: */
24: public interface IPlaceholderFolderLayout {
25:
26: /**
27: * Adds a view placeholder to this folder.
28: * A view placeholder is used to define the position of a view before the view
29: * appears. Initially, it is invisible; however, if the user ever opens a view
30: * whose compound id matches the placeholder, the view will appear at the same
31: * location as the placeholder.
32: * See the {@link IPageLayout} type documentation for more details about compound ids.
33: * If the placeholder contains wildcards, it remains in the layout, otherwise
34: * it is replaced by the view.
35: * If the primary id of the placeholder has no wildcards, it must refer to a view
36: * contributed to the workbench's view extension point
37: * (named <code>"org.eclipse.ui.views"</code>).
38: *
39: * @param viewId the compound view id (wildcards allowed)
40: */
41: public void addPlaceholder(String viewId);
42:
43: /**
44: * Returns the property with the given id or <code>null</code>. Folder
45: * properties are an extensible mechanism for perspective authors to
46: * customize the appearance of view stacks. The list of customizable
47: * properties is determined by the presentation factory.
48: *
49: * @param id
50: * Must not be <code>null</code>.
51: * @return property value, or <code>null</code> if the property is not
52: * set.
53: * @since 3.3
54: */
55: public String getProperty(String id);
56:
57: /**
58: * Sets the given property to the given value. Folder properties are an
59: * extensible mechanism for perspective authors to customize the appearance
60: * of view stacks. The list of customizable properties is determined by the
61: * presentation factory.
62: * <p>
63: * These folder properties are intended to be set during
64: * <code>IPerspectiveFactory#createInitialLayout</code>. Any subsequent
65: * changes to property values after this method completes will not fire
66: * change notifications and will not be reflected in the presentation.
67: * </p>
68: *
69: * @param id
70: * property id. Must not be <code>null</code>.
71: * @param value
72: * property value. <code>null</code> will clear the property.
73: * @since 3.3
74: */
75: public void setProperty(String id, String value);
76: }
|