소스 검색

extracted Label and Content Provider for Folders to reuse in SCTUnit

Andreas Muelder 8 년 전
부모
커밋
b37219eb1a

+ 17 - 5
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/SGenWizardPage2.java

@@ -52,7 +52,9 @@ import org.yakindu.sct.generator.core.extensions.FileExtensions;
 import org.yakindu.sct.generator.core.extensions.GeneratorExtensions;
 import org.yakindu.sct.generator.core.extensions.IGeneratorDescriptor;
 import org.yakindu.sct.generator.genmodel.ui.PathToImageResolver;
+import org.yakindu.sct.ui.wizards.AbstractWorkspaceLabelProvider;
 import org.yakindu.sct.ui.wizards.ModelCreationWizardPage;
+import org.yakindu.sct.ui.wizards.WorkspaceTreeContentProvider;
 
 import com.google.common.collect.Lists;
 
@@ -108,8 +110,8 @@ public class SGenWizardPage2 extends WizardPage {
 		resourceTree = new CheckboxTreeViewer(container, SWT.BORDER);
 		resourceTree.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
 
-		resourceTree.setContentProvider(new SGenWizardPage2ContentProvider());
-		resourceTree.setLabelProvider(new SGenWizardPage2LabelProvider());
+		resourceTree.setContentProvider(new WorkspaceTreeContentProvider());
+		resourceTree.setLabelProvider(new SGenWorkspaceLabelProvider());
 
 		TreePropagatingCheckStateListener checkStateListener = new TreePropagatingCheckStateListener(resourceTree) {
 			@Override
@@ -120,7 +122,7 @@ public class SGenWizardPage2 extends WizardPage {
 		resourceTree.addCheckStateListener(checkStateListener);
 		resourceTree.addDoubleClickListener(new TreeExpandingDoubleClickListener(resourceTree, checkStateListener));
 		resourceTree.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
-		resourceTree.setFilters(new ViewerFilter[]{new ViewerFilter() {
+		resourceTree.setFilters(new ViewerFilter[] { new ViewerFilter() {
 			@Override
 			public boolean select(Viewer viewer, Object parentElement, Object element) {
 				// TODO: Filter by common navigator filter instead of supressing
@@ -130,7 +132,7 @@ public class SGenWizardPage2 extends WizardPage {
 				}
 				return true;
 			}
-		}});
+		} });
 	}
 
 	private void createGeneratorCombo(Composite container) {
@@ -153,7 +155,7 @@ public class SGenWizardPage2 extends WizardPage {
 
 	protected void refreshInput() {
 		lblNewLabel.setText("Choose: " + getSelectedGenerator().getContentType());
-		((SGenWizardPage2ContentProvider) resourceTree.getContentProvider())
+		((WorkspaceTreeContentProvider) resourceTree.getContentProvider())
 				.setFileExtension(FileExtensions.getFileExtension(getSelectedGenerator().getId()));
 		resourceTree.setInput(getSelectedProject());
 	}
@@ -224,4 +226,14 @@ public class SGenWizardPage2 extends WizardPage {
 			return super.getImage(element);
 		}
 	}
+	
+	protected static class SGenWorkspaceLabelProvider extends AbstractWorkspaceLabelProvider {
+
+		protected Image createImageForFile(IFile file) {
+			String generatorID = FileExtensions.getGeneratorForFileExtension(file.getFileExtension());
+			IGeneratorDescriptor genDesc = GeneratorExtensions.getGeneratorDescriptor(generatorID);
+			return PathToImageResolver.toImage(genDesc.getImagePath());
+		}
+
+	}
 }

+ 6 - 9
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/SGenWizardPage2LabelProvider.java

@@ -8,7 +8,7 @@
  * 	committers of YAKINDU - initial API and implementation
  * 
  */
-package org.yakindu.sct.generator.genmodel.ui.wizard;
+package org.yakindu.sct.ui.wizards;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
@@ -19,17 +19,15 @@ import org.eclipse.swt.graphics.Image;
 import org.eclipse.ui.ISharedImages;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.ide.IDE;
-import org.yakindu.sct.generator.core.extensions.FileExtensions;
-import org.yakindu.sct.generator.core.extensions.GeneratorExtensions;
-import org.yakindu.sct.generator.core.extensions.IGeneratorDescriptor;
-import org.yakindu.sct.generator.genmodel.ui.PathToImageResolver;
 
 /**
  * 
  * @author oliver bohl - Initial contribution and API
  * 
  */
-class SGenWizardPage2LabelProvider extends LabelProvider {
+public abstract class AbstractWorkspaceLabelProvider extends LabelProvider {
+
+	protected abstract Image createImageForFile(IFile file);
 
 	@Override
 	public Image getImage(Object element) {
@@ -38,9 +36,7 @@ class SGenWizardPage2LabelProvider extends LabelProvider {
 		} else if (element instanceof IProject) {
 			return PlatformUI.getWorkbench().getSharedImages().getImage(IDE.SharedImages.IMG_OBJ_PROJECT);
 		} else if (element instanceof IFile) {
-			String generatorID = FileExtensions.getGeneratorForFileExtension(((IFile) element).getFileExtension());
-			IGeneratorDescriptor genDesc = GeneratorExtensions.getGeneratorDescriptor(generatorID);
-			return PathToImageResolver.toImage(genDesc.getImagePath());
+			return createImageForFile((IFile) element);
 		}
 		return super.getImage(element);
 	}
@@ -50,3 +46,4 @@ class SGenWizardPage2LabelProvider extends LabelProvider {
 		return ((IResource) element).getName();
 	}
 };
+ 

+ 14 - 14
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/SGenWizardPage2ContentProvider.java

@@ -8,7 +8,7 @@
  * 	committers of YAKINDU - initial API and implementation
  * 
  */
-package org.yakindu.sct.generator.genmodel.ui.wizard;
+package org.yakindu.sct.ui.wizards;
 
 import java.util.HashSet;
 import java.util.Set;
@@ -27,10 +27,17 @@ import org.eclipse.jface.viewers.Viewer;
  * @author oliver bohl - Initial contribution and API
  * 
  */
-public class SGenWizardPage2ContentProvider implements ITreeContentProvider {
+public class WorkspaceTreeContentProvider implements ITreeContentProvider {
 
 	protected String fileExtension;
 
+	public WorkspaceTreeContentProvider() {
+	}
+
+	public WorkspaceTreeContentProvider(String fileExtension) {
+		this.fileExtension = fileExtension;
+	}
+
 	public Object[] getElements(Object inputElement) {
 		if (inputElement instanceof IContainer) {
 			IContainer container = (IContainer) inputElement;
@@ -66,9 +73,7 @@ public class SGenWizardPage2ContentProvider implements ITreeContentProvider {
 					return false;
 				}
 				// check if file extension is proper
-				else if (member instanceof IFile
-						&& ((IFile) member).getFileExtension().equals(
-								fileExtension)) {
+				else if (member instanceof IFile && ((IFile) member).getFileExtension().equals(fileExtension)) {
 					return true;
 				} else if (member instanceof IFolder) {
 					return containsFile((IFolder) member);
@@ -79,25 +84,20 @@ public class SGenWizardPage2ContentProvider implements ITreeContentProvider {
 		return false;
 	}
 
-	public Object[] filterForContent(Object[] inputElements)
-			throws CoreException {
+	public Object[] filterForContent(Object[] inputElements) throws CoreException {
 		final Set<Object> result = new HashSet<Object>();
 		for (final Object obj : inputElements) {
 			((IResource) obj).accept(new IResourceVisitor() {
 				public boolean visit(IResource resource) throws CoreException {
 					// no file extension check
-					if (resource instanceof IFile
-							&& hasFileExtension((IFile) resource)) {
+					if (resource instanceof IFile && hasFileExtension((IFile) resource)) {
 						return false;
 					}
 					// check if file extension is proper
-					else if (resource instanceof IFile
-							&& resource.getFileExtension()
-									.equals(fileExtension)) {
+					else if (resource instanceof IFile && resource.getFileExtension().equals(fileExtension)) {
 						result.add(obj);
 						return true;
-					} else if (resource instanceof IFolder
-							&& containsFile((IFolder) resource)) {
+					} else if (resource instanceof IFolder && containsFile((IFolder) resource)) {
 						result.add(obj);
 						return true;
 					}