this class will define a class instantiation (with maybe a &)
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / externaltools / variable / IVariableComponent.java
1 package net.sourceforge.phpdt.externaltools.variable;
2
3 /**********************************************************************
4 Copyright (c) 2002 IBM Corp. and others. All rights reserved.
5 This file is made available under the terms of the Common Public License v1.0
6 which accompanies this distribution, and is available at
7 http://www.eclipse.org/legal/cpl-v10.html
8  
9 Contributors:
10 **********************************************************************/
11
12 import org.eclipse.swt.widgets.Composite;
13 import org.eclipse.swt.widgets.Control;
14 import net.sourceforge.phpdt.externaltools.group.IGroupDialogPage;
15
16 /**
17  * Represents the API for a client extending one of the
18  * variable extension points to provide visual editing
19  * of the variable.
20  * <p>
21  * This interface is not to be extended by clients. Clients
22  * may implement this interface.
23  * </p>
24  */
25 public interface IVariableComponent {
26         /**
27          * Returns the control to edit the variable
28          * value, otherwise <code>null</code> if no editing
29          * supported or if <code>createContents</code> has
30          * not been called yet
31          * 
32          * @return the main control for the variable component
33          *              or <code>null</code> if none
34          */
35         public Control getControl();
36         
37         /**
38          * Creates the control to edit the variable. Does nothing
39          * if no editing supported.
40          * 
41          * @param parent the composite to parent all controls to
42          * @param varTag the variable tag name to create the controls for
43          * @param page the dialog page this visual component will be part of
44          */
45         public void createContents(Composite parent, String varTag, IGroupDialogPage page);
46
47         /**
48          * Returns the variable value as specified by
49          * the user thru the visual component.
50          * 
51          * @return the variable value as indicated by the visual component
52          */
53         public String getVariableValue();
54
55         /**
56          * Returns whether the variable's visual component has an
57          * acceptable value.
58          * 
59          * @return <code>true</code> if all value acceptable, or <code>false</code> otherwise
60          */
61         public boolean isValid();
62
63         /**
64          * Sets the visual component to represent the
65          * given variable value.
66          * 
67          * @param varValue the variable value the visual component should indicate
68          */
69         public void setVariableValue(String varValue);
70
71         /**
72          * Validates visual component current values entered by the
73          * user and updates it's valid state if needed
74          */
75         public void validate();
76 }