/*
 * Created on Mar 16, 2005
 */
package org.flexdock.docking.props;

import java.beans.PropertyChangeListener;

import javax.swing.Icon;

/**
 * @author Christopher Butler
 */
public interface DockablePropertySet {
    public static final String DESCRIPTION = "Dockable.DESCRIPTION";
    public static final String DOCKING_ENABLED = "Dockable.DOCKING_ENABLED";
    public static final String MOUSE_MOTION_DRAG_BLOCK = "Dockable.MOUSE_MOTION_DRAG_BLOCK";
    public static final String DRAG_THRESHOLD = "Dockable.DRAG_THRESHOLD";

    public static final String REGION_SIZE_NORTH = "Dockable.REGION_SIZE_NORTH";
    public static final String SIBLING_SIZE_NORTH = "Dockable.SIBLING_SIZE_NORTH";
    public static final String TERRITORY_BLOCKED_NORTH = "Dockable.TERRITORY_BLOCKED_NORTH";

    public static final String REGION_SIZE_SOUTH = "Dockable.REGION_SIZE_SOUTH";
    public static final String SIBLING_SIZE_SOUTH = "Dockable.SIBLING_SIZE_SOUTH";
    public static final String TERRITORY_BLOCKED_SOUTH = "Dockable.TERRITORY_BLOCKED_SOUTH";

    public static final String REGION_SIZE_EAST = "Dockable.REGION_SIZE_EAST";
    public static final String SIBLING_SIZE_EAST = "Dockable.SIBLING_SIZE_EAST";
    public static final String TERRITORY_BLOCKED_EAST = "Dockable.TERRITORY_BLOCKED_EAST";

    public static final String REGION_SIZE_WEST = "Dockable.REGION_SIZE_WEST";
    public static final String SIBLING_SIZE_WEST = "Dockable.SIBLING_SIZE_WEST";
    public static final String TERRITORY_BLOCKED_WEST = "Dockable.TERRITORY_BLOCKED_WEST";

    public static final String TERRITORY_BLOCKED_CENTER = "Dockable.TERRITORY_BLOCKED_CENTER";
    public static final String DOCKBAR_ICON = "Dockable.DOCKBAR_ICON";
    public static final String TAB_ICON = "Dockable.TAB_ICON";
    public static final String PREVIEW_SIZE = "Dockable.PREVIEW_SIZE";

    public static final String ACTIVE = "Dockable.ACTIVE";



    public String getDockableDesc();

    public Boolean isDockingEnabled();

    public Boolean isMouseMotionListenersBlockedWhileDragging();

    public Float getRegionInset(String region);

    public Float getSiblingSize(String region);

    public Boolean isTerritoryBlocked(String region);

    public Float getDragThreshold();

    public Icon getDockbarIcon();

    public Icon getTabIcon();

    public Float getPreviewSize();

    public String getDockingId();

    public Boolean isActive();





    public void setDockableDesc(String desc);

    public void setDockingEnabled(boolean enabled);

    public void setMouseMotionListenersBlockedWhileDragging(boolean blocked);

    public void setRegionInset(String region, float inset);

    public void setSiblingSize(String region, float size);

    public void setTerritoryBlocked(String region, boolean blocked);

    public void setDragTheshold(float threshold);

    public void setDockbarIcon(Icon icon);

    public void setTabIcon(Icon icon);

    public void setPreviewSize(float size);

    public void setActive(boolean active);

    public Object put(Object key, Object value);

    public Object remove(Object key);

    public void addPropertyChangeListener(PropertyChangeListener listener);

    public void removePropertyChangeListener(PropertyChangeListener listener);
}
