All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.xmind.core.internal.StyleSheet Maven / Gradle / Ivy

Go to download

Plugin that manages JBehave stories storage in XMind mindmap file, which allows design jBehave tests right after the brainstorm

The newest version!
/* ******************************************************************************
 * Copyright (c) 2006-2012 XMind Ltd. and others.
 * 
 * This file is a part of XMind 3. XMind releases 3 and
 * above are dual-licensed under the Eclipse Public License (EPL),
 * which is available at http://www.eclipse.org/legal/epl-v10.html
 * and the GNU Lesser General Public License (LGPL), 
 * which is available at http://www.gnu.org/licenses/lgpl.html
 * See http://www.xmind.net/license.html for details.
 * 
 * Contributors:
 *     XMind Ltd. - initial API and implementation
 *******************************************************************************/
package org.xmind.core.internal;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;

import org.xmind.core.style.IStyle;
import org.xmind.core.style.IStyleSheet;
import org.xmind.core.util.DOMUtils;

public abstract class StyleSheet implements IStyleSheet {

    protected static final Set NO_STYLES = Collections.emptySet();

    private IStyleSheet parent = null;

    public Object getAdapter(Class adapter) {
        return null;
    }

    public Set getAllStyles() {
        Set normalStyles = getStyles(NORMAL_STYLES);
        Set masterStyles = getStyles(MASTER_STYLES);
        Set automaticStyles = getStyles(AUTOMATIC_STYLES);
        int size = normalStyles.size() + masterStyles.size()
                + automaticStyles.size();
        if (size == 0)
            return NO_STYLES;
        List list = new ArrayList(size);
        list.addAll(automaticStyles);
        list.addAll(masterStyles);
        list.addAll(normalStyles);
        return DOMUtils.unmodifiableSet(list);
    }

    public boolean isEmpty() {
        return getAllStyles().isEmpty();
    }

    public IStyleSheet getParentSheet() {
        return parent;
    }

    public void setParentSheet(IStyleSheet parent) {
        this.parent = parent;
    }

    public IStyle findStyle(String styleId) {
        if (styleId == null)
            return null;
        IStyle style = getLocalStyle(styleId);
        if (style != null)
            return style;
        if (parent != null)
            style = parent.findStyle(styleId);
        return style;
    }

    protected abstract IStyle getLocalStyle(String styleId);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy