/** * Checks if all the resource states from a list of resources are 'new'.<p> * * @param projectResources the resources to check * @return true if all the resources from the input list have the state 'new' */ private boolean hasOnlyNewResources(List<CmsResource> projectResources) { boolean hasOnlyNewResources = true; for (CmsResource projectRes : projectResources) { if (!projectRes.getState().isNew()) { hasOnlyNewResources = false; break; } } return hasOnlyNewResources; }
/** * Gets the CSS style name for the given resource state.<p> * * @param state the resource state * @return the CSS style name */ public static String getStateStyle(CmsResourceState state) { String stateStyle = ""; if (state != null) { if (state.isDeleted()) { stateStyle = OpenCmsTheme.STATE_DELETED; } else if (state.isNew()) { stateStyle = OpenCmsTheme.STATE_NEW; } else if (state.isChanged()) { stateStyle = OpenCmsTheme.STATE_CHANGED; } } return stateStyle; }
/** * Gets all structure ids for which published resources of both states 'new' and 'deleted' exist in the given list.<p> * * @param publishedResources a list of published resources * * @return the set of structure ids that satisfy the condition above */ private Set<CmsUUID> getIdsOfPublishResourcesWhichAreBothNewAndDeleted( List<CmsPublishedResource> publishedResources) { Set<CmsUUID> result = new HashSet<CmsUUID>(); Set<CmsUUID> deletedSet = new HashSet<CmsUUID>(); for (CmsPublishedResource pubRes : publishedResources) { if (pubRes.getState().isNew()) { result.add(pubRes.getStructureId()); } if (pubRes.getState().isDeleted()) { deletedSet.add(pubRes.getStructureId()); } } result.retainAll(deletedSet); return result; }
/** * Returns the resource state including move operation information.<p> * * @return the resource state including move operation information */ public CmsResourceState getMovedState() { if (!m_isMoved) { return getState(); } else if (getState().isDeleted()) { return STATE_MOVED_SOURCE; } else if (getState().isNew()) { return STATE_MOVED_DESTINATION; } else { // should never happen return getState(); } }
/** * Returns the resource state including move operation information.<p> * * @return the resource state including move operation information */ public CmsResourceState getMovedState() { if (!m_isMoved) { return getState(); } else if (getState().isDeleted()) { return STATE_MOVED_SOURCE; } else if (getState().isNew()) { return STATE_MOVED_DESTINATION; } else { // should never happen return getState(); } }
if (!parent.getState().isNew()) {
if (!parent.getState().isNew()) {
if (state.isNew() || state.isChanged() || state.isDeleted()) {
/** * @see org.opencms.workplace.explorer.menu.I_CmsMenuItemRule#getVisibility(org.opencms.file.CmsObject, CmsResourceUtil[]) */ @Override public CmsMenuItemVisibilityMode getVisibility(CmsObject cms, CmsResourceUtil[] resourceUtil) { if (cms.getRequestContext().currentProject().isOnlineProject()) { return CmsMenuItemVisibilityMode.VISIBILITY_INACTIVE.addMessageKey(Messages.GUI_CONTEXTMENU_TITLE_INACTIVE_ONLINEPROJECT_0); } try { CmsResource parent = cms.readFolder(CmsResource.getParentFolder(cms.getSitePath(resourceUtil[0].getResource()))); if (parent.getState().isNew()) { return CmsMenuItemVisibilityMode.VISIBILITY_INACTIVE.addMessageKey(Messages.GUI_CONTEXTMENU_TITLE_INACTIVE_PUBLISH_PARENTFOLDER_0); } } catch (CmsException e) { if (LOG.isErrorEnabled()) { LOG.error(e.getLocalizedMessage(), e); } } return CmsMenuItemVisibilityMode.VISIBILITY_ACTIVE; }
/** * @see org.opencms.workplace.explorer.menu.I_CmsMenuItemRule#getVisibility(org.opencms.file.CmsObject, CmsResourceUtil[]) */ @Override public CmsMenuItemVisibilityMode getVisibility(CmsObject cms, CmsResourceUtil[] resourceUtil) { if (cms.getRequestContext().getCurrentProject().isOnlineProject()) { return CmsMenuItemVisibilityMode.VISIBILITY_INACTIVE.addMessageKey( Messages.GUI_CONTEXTMENU_TITLE_INACTIVE_ONLINEPROJECT_0); } try { CmsResource parent = cms.readFolder( CmsResource.getParentFolder(cms.getSitePath(resourceUtil[0].getResource()))); if (parent.getState().isNew()) { return CmsMenuItemVisibilityMode.VISIBILITY_INACTIVE.addMessageKey( Messages.GUI_CONTEXTMENU_TITLE_INACTIVE_PUBLISH_PARENTFOLDER_0); } } catch (CmsException e) { if (LOG.isErrorEnabled()) { LOG.error(e.getLocalizedMessage(), e); } } return CmsMenuItemVisibilityMode.VISIBILITY_ACTIVE; }
if (resource.getState().isNew()) { String parentPath = CmsResource.getParentFolder(resource.getRootPath()); CmsResource parent = resourcesByPath.get(parentPath); if (parent == null) { parent = rootCms.readResource(parentPath); if (parent.getState().isNew()) { throw new CmsNewParentNotInWorkflowException( Messages.get().container(
/** * Deletes the file.<p> * * @throws IOException if something goes wrong */ public void delete() throws IOException { try { load(false); ensureLock(); m_cms.deleteResource(m_cms.getSitePath(m_resource), CmsResource.DELETE_PRESERVE_SIBLINGS); if (!m_resource.getState().isNew()) { try { m_cms.unlockResource(m_cms.getSitePath(m_resource)); } catch (CmsException e) { LOG.warn(e.getLocalizedMessage(), e); } } } catch (CmsException e) { throw CmsJlanDiskInterface.convertCmsException(e); } }
} finally { if (lockRecord.getChange().equals(LockChange.locked)) { if (!resource.getState().isNew()) { try { cms.unlockResource(resource);
/** * Returns the style class to use for the given resource.<p> * * @return style class name * * @see org.opencms.workplace.list.CmsListExplorerColumn#getExplorerStyleDef() */ public String getStyleClassName() { if (isInsideProject() && isEditable()) { if (m_resource.getState().isChanged()) { return "fc"; } else if (m_resource.getState().isNew()) { return "fn"; } else if (m_resource.getState().isDeleted()) { return "fd"; } else { return "nf"; } } return "fp"; }
if (resource.getState().isUnchanged()) { resource.setState(CmsResource.STATE_CHANGED); } else if (resource.getState().isNew() && (resource.getSiblingCount() > 1)) {
/** * Returns the style class to use for the given resource.<p> * * @return style class name * * @see org.opencms.workplace.list.CmsListExplorerColumn#getExplorerStyleDef() */ public String getStyleClassName() { if (isInsideProject() && isEditable()) { if (m_resource.getState().isChanged()) { return "fc"; } else if (m_resource.getState().isNew()) { return "fn"; } else if (m_resource.getState().isDeleted()) { return "fd"; } else { return "nf"; } } return "fp"; }
/** * Enumeration class for the mode parameter in the * {@link CmsDriverManager#readChangedResourcesInsideProject(CmsDbContext, CmsUUID, CmsReadChangedProjectResourceMode)} * method.<p> */ private static class CmsReadChangedProjectResourceMode { /** * Default constructor.<p> */ protected CmsReadChangedProjectResourceMode() { // noop } }
/** * Adds a given published resource to the provided search index update data.<p> * * This method decides if the resource has to be included in the "update" or "delete" list.<p> * * @param pubRes the published resource to add * @param updateData the search index update data to add the resource to */ protected void addResourceToUpdateData(CmsPublishedResource pubRes, CmsSearchIndexUpdateData updateData) { if (pubRes.getState().isDeleted()) { // deleted resource just needs to be removed updateData.addResourceToDelete(pubRes); } else if (pubRes.getState().isNew() || pubRes.getState().isChanged() || pubRes.getState().isUnchanged()) { updateData.addResourceToUpdate(pubRes); } }
/** * @see org.opencms.workplace.explorer.menu.I_CmsMenuItemRule#getVisibility(org.opencms.file.CmsObject, CmsResourceUtil[]) */ @Override public CmsMenuItemVisibilityMode getVisibility(CmsObject cms, CmsResourceUtil[] resourceUtil) { if (resourceUtil[0].getResource().getState().isDeleted()) { return CmsMenuItemVisibilityMode.VISIBILITY_INVISIBLE; } else if (resourceUtil[0].getResource().getState().isNew() || (resourceUtil[0].getResource().isFile() && resourceUtil[0].getResource().getState().isUnchanged())) { return CmsMenuItemVisibilityMode.VISIBILITY_INACTIVE.addMessageKey(Messages.GUI_CONTEXTMENU_TITLE_INACTIVE_NEW_UNCHANGED_0); } try { if (!resourceUtil[0].isEditable() || !cms.hasPermissions( resourceUtil[0].getResource(), CmsPermissionSet.ACCESS_WRITE, false, CmsResourceFilter.ALL)) { return CmsMenuItemVisibilityMode.VISIBILITY_INACTIVE.addMessageKey(Messages.GUI_CONTEXTMENU_TITLE_INACTIVE_PERM_WRITE_0); } } catch (CmsException e) { // error checking permissions, disable entry completely return CmsMenuItemVisibilityMode.VISIBILITY_INVISIBLE; } return CmsMenuItemVisibilityMode.VISIBILITY_ACTIVE; }
/** * @see org.opencms.workplace.explorer.menu.I_CmsMenuItemRule#getVisibility(org.opencms.file.CmsObject, CmsResourceUtil[]) */ @Override public CmsMenuItemVisibilityMode getVisibility(CmsObject cms, CmsResourceUtil[] resourceUtil) { if (resourceUtil[0].getResource().getState().isDeleted()) { return CmsMenuItemVisibilityMode.VISIBILITY_INVISIBLE; } else if (resourceUtil[0].getResource().getState().isNew() || (resourceUtil[0].getResource().isFile() && resourceUtil[0].getResource().getState().isUnchanged())) { return CmsMenuItemVisibilityMode.VISIBILITY_INACTIVE.addMessageKey( Messages.GUI_CONTEXTMENU_TITLE_INACTIVE_NEW_UNCHANGED_0); } try { if (!resourceUtil[0].isEditable() || !cms.hasPermissions( resourceUtil[0].getResource(), CmsPermissionSet.ACCESS_WRITE, false, CmsResourceFilter.ALL)) { return CmsMenuItemVisibilityMode.VISIBILITY_INACTIVE.addMessageKey( Messages.GUI_CONTEXTMENU_TITLE_INACTIVE_PERM_WRITE_0); } } catch (CmsException e) { // error checking permissions, disable entry completely return CmsMenuItemVisibilityMode.VISIBILITY_INVISIBLE; } return CmsMenuItemVisibilityMode.VISIBILITY_ACTIVE; }