You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by st...@apache.org on 2013/09/20 11:09:41 UTC
svn commit: r1524956 -
/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java
Author: stefanegli
Date: Fri Sep 20 09:09:40 2013
New Revision: 1524956
URL: http://svn.apache.org/r1524956
Log:
SLING-2985 : content-browser improvement: icons calculation based on node/mime type
Modified:
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java
Modified: sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java
URL: http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java?rev=1524956&r1=1524955&r2=1524956&view=diff
==============================================================================
--- sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java (original)
+++ sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java Fri Sep 20 09:09:40 2013
@@ -20,12 +20,10 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import javax.xml.parsers.ParserConfigurationException;
@@ -33,6 +31,7 @@ import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.apache.sling.ide.eclipse.core.ISlingLaunchpadServer;
+import org.apache.sling.ide.eclipse.core.ProjectUtil;
import org.apache.sling.ide.eclipse.ui.WhitelabelSupport;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
@@ -48,7 +47,6 @@ import org.eclipse.core.runtime.IProgres
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IActionFilter;
@@ -391,46 +389,46 @@ public class JcrNode implements IAdaptab
}
public Image getImage() {
- if (resource!=null) {
- if (resource instanceof IFolder) {
- Image folderImage = workbenchLabelProvider.getImage(resource);
- if (domNode==null && false) {
- // then make it greyscale
- folderImage = new
- Image(folderImage.getDevice(), folderImage,SWT.IMAGE_GRAY);
- }
- return folderImage;
- } else
- try {
- if (!isVaultFile(resource)){
- final String jcrMimeType = getJcrContentProperty("jcr:mimeType");
- if (jcrMimeType!=null && jcrMimeType.length()!=0) {
- ImageDescriptor desc = getImageDescriptor(resource.getName(), jcrMimeType);
- if (desc!=null) {
- return desc.createImage();
- }
- }
- return workbenchLabelProvider.getImage(resource);
- }
- } catch (ParserConfigurationException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (SAXException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (CoreException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ boolean plainFolder = resource!=null && (resource instanceof IFolder);
+ String primaryType = getProperty("jcr:primaryType");
+ boolean typeFolder = primaryType!=null && ((primaryType.equals("nt:folder") || primaryType.equals("sling:Folder")));
+ boolean typeFile = primaryType!=null && ((primaryType.equals("nt:file") || primaryType.equals("nt:resource") || primaryType.equals("sling:File")));
+ boolean typeUnstructured = primaryType!=null && ((primaryType.equals("nt:unstructured")));
+
+ boolean isVaultFile = false;
+ try {
+ isVaultFile = resource!=null && !isVaultFile(resource);
+ } catch (Exception e) {
+ // this empty catch is okay
+ }
+
+ String mimeType = null;
+ if (isVaultFile) {
+ mimeType = getJcrContentProperty("jcr:mimeType");
+ if (mimeType == null) {
+ mimeType = getProperty("jcr:mimeType");
+ }
+ }
+
+ if (typeUnstructured) {
+ return WhitelabelSupport.JCR_NODE_ICON.createImage();
+ } else if (plainFolder || typeFolder) {
+ return workbenchLabelProvider.getImage(ProjectUtil.getSyncDirectory(getProject()));
+ } else if (typeFile && resource!=null) {
+ if (mimeType!=null && mimeType.length()!=0) {
+ ImageDescriptor desc = getImageDescriptor(resource.getName(), mimeType);
+ if (desc!=null) {
+ return desc.createImage();
}
+ }
+ if (isVaultFile) {
+ return WhitelabelSupport.JCR_NODE_ICON.createImage();
+ }
+ return workbenchLabelProvider.getImage(resource);
+ } else {
+ return WhitelabelSupport.JCR_NODE_ICON.createImage();
}
- //if (domNode!=null && children!=null && children.size()>0) {
- // return workbenchLabelProvider.getImage(domNode);
- //}
- return WhitelabelSupport.JCR_NODE_ICON.createImage();
}
private ImageDescriptor getImageDescriptor(String filename, String jcrMimeType) {
@@ -450,12 +448,17 @@ public class JcrNode implements IAdaptab
for (int i = 0; i < chldrn.length; i++) {
JcrNode jcrNode = (JcrNode) chldrn[i];
if ("jcr:content".equals(jcrNode.getName())) {
- if (jcrNode.properties!=null) {
- Object propertyValue = jcrNode.properties.getValue(propertyKey);
- if (propertyValue!=null) {
- return String.valueOf(propertyValue);
- }
- }
+ return jcrNode.getProperty(propertyKey);
+ }
+ }
+ return null;
+ }
+
+ private String getProperty(String propertyKey) {
+ if (properties!=null) {
+ Object propertyValue = properties.getValue(propertyKey);
+ if (propertyValue!=null) {
+ return String.valueOf(propertyValue);
}
}
return null;