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

jdplus.toolkit.desktop.plugin.workspace.AbstractWorkspaceItemManager Maven / Gradle / Ivy

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jdplus.toolkit.desktop.plugin.workspace;

import java.util.Collections;
import java.util.List;

/**
 *
 * @author Jean Palate
 * @param 
 */
public abstract class AbstractWorkspaceItemManager implements WorkspaceItemManager {
    
    protected abstract String getItemPrefix();

    protected boolean isUsed(String name) {
        if (null != WorkspaceFactory.getInstance().getActiveWorkspace().searchDocument(getId(), name)) {
            return true;
        }
        if (null != WorkspaceFactory.getInstance().getActiveWorkspace().searchDocumentByName(getId(), name)) {
            return true;
        }
        return false;
    }

    public String getNextItemName() {
        return getNextItemName(null);
    }

    @Override
    public String getNextItemName(final String pname) {
        String name = pname;
        int id = 1;
        while (name == null || isUsed(name)) {
            StringBuilder builder = new StringBuilder();
            builder.append(getItemPrefix());
            builder.append("-").append(id++);
            name = builder.toString();
        }
        return name;
    }

    @Override
    public WorkspaceItem create(Workspace ws) {
        D newObject = createNewObject();
        if (newObject == null)
            return null;
        WorkspaceItem item = WorkspaceItem.newItem(getId(), getNextItemName(), newObject);
        if (ws != null) {
            ws.add(item);
        }
        return item;
    }

    @Override
    public List> getDefaultItems() {
        return Collections.emptyList();
    }

    @Override
    public boolean isAutoLoad(){
        return false;
    }
    
    protected void cloneItem(WorkspaceItem doc) {
    }
    
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy