public class ConflictOpenServerAction extends ConflictAction {
  private static ICarbonStudioLog log = Logger.getLog(Activator.PLUGIN_ID);

  /** execute action on the file */
  protected void execute(IFile file, IAction action) {
    String conflictResourceLocalCopy =
        RegistryCheckInClientUtils.getConflictResourceServerCopy(file.getLocation().toOSString());
    IFile conflictFile =
        file.getWorkspace().getRoot().getFileForLocation(new Path(conflictResourceLocalCopy));
    try {
      IEditorDescriptor defaultEditor = IDE.getEditorDescriptor(file);
      IWorkbenchPage activePage =
          PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
      activePage.openEditor(new FileEditorInput(conflictFile), defaultEditor.getId());
    } catch (PartInitException e) {
      log.error(e);
    }
  }
}
public class WARArtifactContentProvider implements ICommonContentProvider {
  private static ICarbonStudioLog log = Logger.getLog(Activator.PLUGIN_ID);

  public void init(ICommonContentExtensionSite arg0) {}

  public Object[] getChildren(Object obj) {
    if (obj instanceof WARArtifactLocationNode) {
      WARArtifactLocationNode node = (WARArtifactLocationNode) obj;
      List<IResource> resources = getResources(node);
      //	    		if (resources.size()>0)
      return resources.toArray();
      //	    		else
      //	    			return new Object[]{"<Empty>"};
    }
    return new Object[] {};
  }

  private List<IResource> getResources(WARArtifactLocationNode node) {
    final IFolder folder = node.getProject().getFolder(node.getPath());
    final List<IResource> resources = new ArrayList<IResource>();
    try {
      folder.accept(
          new IResourceVisitor() {

            public boolean visit(IResource arg0) throws CoreException {
              if (folder.getFullPath().toOSString().equals(arg0.getFullPath().toOSString())) {
                return true;
              } else {
                resources.add(arg0);
                return false;
              }
            }
          });
    } catch (CoreException e) {
      log.error(e);
    }
    return resources;
  }

  public Object getParent(Object arg0) {
    return null;
  }

  public boolean hasChildren(Object obj) {
    if (obj instanceof WARArtifactLocationNode) {
      WARArtifactLocationNode node = (WARArtifactLocationNode) obj;
      return getResources(node).size() > 0;
    }
    return false;
  }

  public Object[] getElements(Object arg0) {
    return getChildren(arg0);
  }

  public void dispose() {}

  public void inputChanged(Viewer arg0, Object arg1, Object arg2) {}

  public void restoreState(IMemento arg0) {}

  public void saveState(IMemento arg0) {}
}