Refactory: externaltools plugin.
[phpeclipse.git] / net.sourceforge.phpeclipse.externaltools / src / net / sourceforge / phpdt / externaltools / variable / SpecificFileResourceComponent.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 net.sourceforge.phpdt.externaltools.internal.model.ExternalToolsModelMessages;
13
14 import org.eclipse.core.resources.IResource;
15 import org.eclipse.jface.dialogs.IMessageProvider;
16 import org.eclipse.jface.viewers.IStructuredSelection;
17 import org.eclipse.swt.SWT;
18 import org.eclipse.swt.layout.GridData;
19 import org.eclipse.swt.widgets.Label;
20
21 /**
22  * Visual component to edit the resource type variable value for the file
23  * location. Variable is limited to a specific <code>IFile</code> resource.
24  * <p>
25  * This class is not intended to be extended by clients.
26  * </p>
27  */
28 public class SpecificFileResourceComponent extends ResourceComponent {
29
30         /**
31          * Creates an instance
32          */
33         public SpecificFileResourceComponent() {
34                 super();
35         }
36
37         /*
38          * (non-Javadoc) Method declared on ResourceComponent.
39          */
40         protected void createSelectedResourceOption() {
41                 // Do not present this option...
42         }
43
44         /*
45          * (non-Javadoc) Method declared on ResourceComponent.
46          */
47         protected void createSpecificResourceOption() {
48                 Label label = new Label(mainGroup, SWT.NONE);
49                 GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
50                 label.setLayoutData(data);
51                 label.setFont(mainGroup.getFont());
52                 label.setText(ExternalToolsModelMessages
53                                 .getString("ResourceComponent.specificResLabel")); //$NON-NLS-1$
54         }
55
56         /*
57          * (non-Javadoc) Method declared on ResourceComponent.
58          */
59         protected boolean validateResourceListSelection() {
60                 if (resourceList == null)
61                         return true;
62
63                 IStructuredSelection sel = (IStructuredSelection) resourceList
64                                 .getSelection();
65                 IResource resource = (IResource) sel.getFirstElement();
66                 if (resource == null || resource.getType() != IResource.FILE) {
67                         getPage()
68                                         .setMessage(
69                                                         ExternalToolsModelMessages
70                                                                         .getString("ResourceComponent.selectionRequired"), IMessageProvider.WARNING); //$NON-NLS-1$
71                         setIsValid(false);
72                         return false;
73                 }
74
75                 return true;
76         }
77 }