blob: f777d1ba31d85792705dbcdef0a61d6b41cc414e [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM Corporation and others.
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// Contributors:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.publishing.layout;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.epf.library.layout.util.XmlElement;
/**
* @author Jinhua Xi
* @since 1.0
*/
public class Bookmark {
static final long serialVersionUID = -3652582791326323863L;
// points to the description file in the file system
private String _fileName = ""; //$NON-NLS-1$
// used as "closed" or "default" icon
private String _closedIconName = ""; //$NON-NLS-1$
// used as "open" icon
private String _openIconName = ""; //$NON-NLS-1$
// presentation name of the entry
private String _presentationName = ""; //$NON-NLS-1$
// whether mouse is over the bookmark
// this is for backwards compatibility
// private boolean _isMouseOver = false;
// whether the file exists in the file system
private boolean _isExist = true;
// whether the file is from content library
private boolean _isFromContentLibrary = true;
// unique id.
// A bookmark may not have a uniqueID in which case the
// bookmark has no relation to any layout elements.
private String _uniqueId = null;
// whether the bookmark is visible
private boolean _isVisible = true;
// whether the bookmark is enabled
// this is to support a special case where bookmarks
// are to remain hidden and cannot be unhidden as
// well as transparency
private boolean _isEnabled = true;
// whether the bookmark is transparent
private boolean _isTransparent = false;
// whether the bookmark is a default one
// default means that it is published and is read-only
private boolean _isDefault = false;
// whether the bookmark is the current one
// current means the first one to be focused on
private boolean _isCurrent = false;
private String queryString = "";
private List children = new ArrayList();
/**
* Default constructor. Takes in the presentation name of the process layout
* entry.
*/
public Bookmark(String name) {
_uniqueId = null;
_presentationName = name;
if (_presentationName == null) {
_presentationName = ""; //$NON-NLS-1$
}
}
/**
* Name and uniqueId for a layout node.
*/
public Bookmark(String presentationName, String uniqueId) {
this(presentationName);
_uniqueId = uniqueId;
}
/**
* Override to return presentation name as the user object.
*/
public Object getUserObject() {
return (_presentationName);
}
public void setUserObject(Object userObject) {
_presentationName = (String) userObject;
if (_presentationName == null) {
_presentationName = ""; //$NON-NLS-1$
}
}
public void setPresentationName(String name) {
_presentationName = name;
if (_presentationName == null) {
_presentationName = ""; //$NON-NLS-1$
}
}
public String getPresentationName() {
return (_presentationName);
}
public void setFileName(String name) {
_fileName = name;
if (_fileName == null) {
_fileName = ""; //$NON-NLS-1$
}
}
public String getFileName() {
return (_fileName);
}
public void setClosedIconName(String name) {
_closedIconName = name;
}
public String getClosedIconName() {
return (_closedIconName);
}
public String getOpenIconName() {
return (_openIconName);
}
public void setOpenIconName(String name) {
_openIconName = name;
}
public void setExist(boolean isExist) {
_isExist = isExist;
}
public boolean isExist() {
return (_isExist);
}
public void setFromContentLibrary(boolean flag) {
_isFromContentLibrary = flag;
}
public boolean isFromContentLibrary() {
return (_isFromContentLibrary);
}
public String getUniqueId() {
return (_uniqueId);
}
public void setUniqueId(String uniqueId) {
_uniqueId = uniqueId;
}
public void setVisible(boolean isVisible) {
_isVisible = isVisible;
// special case where all children need to change as well
for (int i = 0; i < getChildCount(); i++) {
Bookmark child = (Bookmark) ((Bookmark) getChildAt(i));
child.setVisible(isVisible);
}
}
public boolean isVisible() {
return (_isVisible);
}
public void setEnabled(boolean isEnabled) {
_isEnabled = isEnabled;
// special case where all children need to change as well
for (int i = 0; i < getChildCount(); i++) {
Bookmark child = (Bookmark) ((Bookmark) getChildAt(i));
child.setEnabled(isEnabled);
}
}
public boolean isEnabled() {
return (_isEnabled);
}
public void setTransparency(boolean isTransparent) {
// set at this bookmark only, not children
_isTransparent = isTransparent;
}
public boolean isTransparent() {
return (_isTransparent);
}
public void setDefault(boolean isDefault) {
_isDefault = isDefault;
}
public boolean isDefault() {
return (_isDefault);
}
public void setCurrent(boolean isCurrent) {
_isCurrent = isCurrent;
}
public boolean isCurrent() {
return (_isCurrent);
}
/**
* Override to handle visiblity.
*/
public int getChildCount() {
return children.size();
}
/**
* Retrieves real child count regardless of visibility.
*/
public int getActualChildCount() {
return (getChildCount());
}
public Object getChildAt(int i) {
return children.get(i);
}
public Object getActualChildAt(int i) {
return children.get(i);
}
public void addChild(Bookmark child) {
children.add(child);
}
public String getQueryString()
{
return queryString;
}
public void setQueryString(String queryStr)
{
this.queryString = queryStr;
}
public XmlElement getXmlElement() {
XmlElement elementXml = new XmlElement("Element") //$NON-NLS-1$
.setAttribute("id", getUniqueId()) //$NON-NLS-1$
.setAttribute("name", getPresentationName().trim()) //$NON-NLS-1$
.setAttribute("url", getFileName() + getQueryString()) //$NON-NLS-1$
.setAttribute("closedIconName", getClosedIconName()) //$NON-NLS-1$
.setAttribute("openIconName", getOpenIconName()) //$NON-NLS-1$
.setAttribute("exist", isExist() ? "true" : "false") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
.setAttribute(
"fromContentLibrary", isFromContentLibrary() ? "true" : "false") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
.setAttribute("visible", isVisible() ? "true" : "false") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
.setAttribute("enabled", isEnabled() ? "true" : "false") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
.setAttribute("transparent", isTransparent() ? "true" : "false") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
.setAttribute("default", isDefault() ? "true" : "false") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
.setAttribute("current", isCurrent() ? "true" : "false"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
for (int i = 0; i < getChildCount(); i++) {
Bookmark child = (Bookmark) getActualChildAt(i);
elementXml.addChild(child.getXmlElement());
}
return elementXml;
}
}