Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Ferguson2008-03-18 18:14:29 +0000
committerAndrew Ferguson2008-03-18 18:14:29 +0000
commit921ac35b9359787fbaa76e3aff23850bed8623ee (patch)
tree050e0d95189b7d11d9375a38b3ff628b447a55f4
parent2b3bac985a7d181e14f93099574db4c914a35bc8 (diff)
downloadorg.eclipse.cdt-921ac35b9359787fbaa76e3aff23850bed8623ee.tar.gz
org.eclipse.cdt-921ac35b9359787fbaa76e3aff23850bed8623ee.tar.xz
org.eclipse.cdt-921ac35b9359787fbaa76e3aff23850bed8623ee.zip
214596: apply fix
-rw-r--r--core/org.eclipse.cdt.ui.tests/resources/projectTemplates/testWidgets/hello.cpp2
-rw-r--r--core/org.eclipse.cdt.ui.tests/resources/projectTemplates/testWidgets/template.xml5
-rw-r--r--core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/InputUIElement.java1
-rw-r--r--core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/UIElementTreeBuilderHelper.java4
-rw-r--r--core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/uiwidgets/UIBrowseWidget.java28
-rw-r--r--doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html8
6 files changed, 39 insertions, 9 deletions
diff --git a/core/org.eclipse.cdt.ui.tests/resources/projectTemplates/testWidgets/hello.cpp b/core/org.eclipse.cdt.ui.tests/resources/projectTemplates/testWidgets/hello.cpp
index 7658866233b..eefb315607b 100644
--- a/core/org.eclipse.cdt.ui.tests/resources/projectTemplates/testWidgets/hello.cpp
+++ b/core/org.eclipse.cdt.ui.tests/resources/projectTemplates/testWidgets/hello.cpp
@@ -17,6 +17,8 @@ int main() {
cout << "$(TestWidget12)" << endl;
cout << "$(TestWidget13)" << endl;
cout << "$(TestWidget14)" << endl;
+ cout << "$(TestWidget15)" << endl;
+ cout << "$(TestWidget16)" << endl;
return 0;
}
diff --git a/core/org.eclipse.cdt.ui.tests/resources/projectTemplates/testWidgets/template.xml b/core/org.eclipse.cdt.ui.tests/resources/projectTemplates/testWidgets/template.xml
index c4262ca6c06..5abe9f8956d 100644
--- a/core/org.eclipse.cdt.ui.tests/resources/projectTemplates/testWidgets/template.xml
+++ b/core/org.eclipse.cdt.ui.tests/resources/projectTemplates/testWidgets/template.xml
@@ -36,6 +36,11 @@
<property id="TestWidget13" label="BrowseWidget1" description="BrowseWidget1Description" type="browse" default="Browse1Default" mandatory="true" pattern=".+"/>
<property id="TestWidget14" label="BrowseWidget2" description="BrowseWidget2Description" type="browse" default="Browse2Default" mandatory="false"/>
</property-group>
+
+ <property-group id="basics3" label="basicsLabel3" description="basicsDescription3" type="PAGES-ONLY" help="help.html">
+ <property id="TestWidget15" label="BrowseDirWidget1" description="BrowseDirWidget1Description" type="browsedir" default="BrowseDir1Default" mandatory="true" pattern=".+"/>
+ <property id="TestWidget16" label="BrowseDirWidget2" description="BrowseDirWidget2Description" type="browsedir" default="BrowseDir2Default" mandatory="false"/>
+ </property-group>
<process type="org.eclipse.cdt.managedbuilder.core.NewManagedProject">
<simple name="name" value="$(projectName)" />
diff --git a/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/InputUIElement.java b/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/InputUIElement.java
index 451cd82c098..a3eb0642e57 100644
--- a/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/InputUIElement.java
+++ b/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/InputUIElement.java
@@ -26,6 +26,7 @@ public abstract class InputUIElement extends UIElement {
public static final String SELECTTYPE = new String("select"); //$NON-NLS-1$
public static final String BOOLEANTYPE = new String("boolean"); //$NON-NLS-1$
public static final String BROWSETYPE = new String("browse"); //$NON-NLS-1$
+ public static final String BROWSEDIRTYPE= new String("browsedir"); //$NON-NLS-1$
public static final String STRINGLISTTYPE = new String("stringlist"); //$NON-NLS-1$
public static final String SPECIALLISTTYPE = new String("speciallist"); //$NON-NLS-1$
public static final String MANDATORY = new String("mandatory"); //$NON-NLS-1$
diff --git a/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/UIElementTreeBuilderHelper.java b/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/UIElementTreeBuilderHelper.java
index 767e5a12a34..357f693d087 100644
--- a/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/UIElementTreeBuilderHelper.java
+++ b/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/UIElementTreeBuilderHelper.java
@@ -142,7 +142,9 @@ public class UIElementTreeBuilderHelper implements IUIElementTreeBuilderHelper {
boolean b= new Boolean(defaultValue).booleanValue();
widgetElement = new UIBooleanWidget(uiAttributes, b);
} else if (type.equalsIgnoreCase(InputUIElement.BROWSETYPE)) {
- widgetElement = new UIBrowseWidget(uiAttributes);
+ widgetElement = new UIBrowseWidget(uiAttributes, false);
+ } else if (type.equalsIgnoreCase(InputUIElement.BROWSEDIRTYPE)) {
+ widgetElement = new UIBrowseWidget(uiAttributes, true);
} else if (type.equalsIgnoreCase(InputUIElement.STRINGLISTTYPE)) {
widgetElement = new UIStringListWidget(uiAttributes);
} else if (type.equalsIgnoreCase(InputUIElement.SPECIALLISTTYPE)) {
diff --git a/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/uiwidgets/UIBrowseWidget.java b/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/uiwidgets/UIBrowseWidget.java
index 5a9f367f2d9..219f324167d 100644
--- a/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/uiwidgets/UIBrowseWidget.java
+++ b/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/uitree/uiwidgets/UIBrowseWidget.java
@@ -18,6 +18,7 @@ import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
@@ -39,14 +40,20 @@ public class UIBrowseWidget extends UITextWidget implements ModifyListener {
protected Button button;
/**
+ * If set to true browse will open a directory selection dialog, otherwise a file selection dialog
+ */
+ protected boolean isDirectoryBrowser;
+
+ /**
* Constructor.
*
* @param uiAttribute
* attribute associated with this widget.
*/
- public UIBrowseWidget(UIAttributes uiAttribute) {
+ public UIBrowseWidget(UIAttributes uiAttribute, boolean isDirectoryBrowser) {
super(uiAttribute);
this.textValue = (String) uiAttribute.get(InputUIElement.DEFAULT);
+ this.isDirectoryBrowser= isDirectoryBrowser;
}
/**
@@ -86,15 +93,24 @@ public class UIBrowseWidget extends UITextWidget implements ModifyListener {
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
- String fileName = new FileDialog(uiComposite.getShell()).open();
- if (fileName != null) {
- textValue = fileName.toString();
- text.setText(textValue);
- }
+ onBrowsePushed();
}
});
}
+ protected void onBrowsePushed() {
+ String fileName;
+ if(isDirectoryBrowser) {
+ fileName= new DirectoryDialog(uiComposite.getShell()).open();
+ } else {
+ fileName= new FileDialog(uiComposite.getShell()).open();
+ }
+ if (fileName != null) {
+ textValue = fileName.toString();
+ text.setText(textValue);
+ }
+ }
+
/**
* call the dispose method on the widgets. This is to ensure that the
* widgets are properly disposed.
diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html
index ab94521fc7c..8a5e79cc363 100644
--- a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html
+++ b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html
@@ -289,8 +289,12 @@ add and delete items to it.
</p>
<li>
<p>
-<code>browse</code>: If you want a browse field to choose a file
-or directory using the File Open dialog.
+<code>browse</code>: If you want a browse button which opens a file (not directory) selection dialog
+</p>
+</li>
+<li>
+<p>
+<code>browsedir</code>: If you want a browse button which opens a directory selection dialog
</p>
</li>
</ul>

Back to the top