⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 perspective.java

📁 定要上载质量高而定要上载质量高而定要上载质量高而定要上载质量高而定要上载质量高而
💻 JAVA
字号:
/*
 * Created on 2005-03-24
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package org.flexdock.perspective;



import java.io.Serializable;

import org.flexdock.docking.Dockable;
import org.flexdock.docking.DockingManager;
import org.flexdock.docking.DockingPort;
import org.flexdock.docking.state.DockingState;
import org.flexdock.docking.state.LayoutNode;
import org.flexdock.event.EventManager;
import org.flexdock.perspective.event.LayoutListener;
import org.flexdock.perspective.event.PerspectiveEvent;

/**
 * @author Mateusz Szczap
 */
public class Perspective implements Cloneable, Serializable {
	private String m_persistentId;
	private String m_perspectiveName;
	private Layout m_layout;
	private LayoutSequence m_initalSequence;

	
	public Perspective(String persistentId, String perspectiveName) {
		this(persistentId, perspectiveName, false);
	}
	
	/**
     * @param persistentId
     * @param perspectiveName
     * @param defaultMode
     * @throws IllegalArgumentException
     *             if {@code persistentId} or {@code perspectiveName} is
     *             {@code null}.
     */
	public Perspective(String persistentId, String perspectiveName, boolean defaultMode) {
		if (persistentId == null) throw new IllegalArgumentException("persistentId cannot be null");
		if (perspectiveName == null) throw new IllegalArgumentException("perspectiveName cannot be null");
		m_persistentId = persistentId;
		m_perspectiveName = perspectiveName;
		m_layout = new Layout();
	}
	
	public String getName() {
		return m_perspectiveName;
	}
	
	public String getPersistentId() {
		return m_persistentId;
	}
	
	public void addDockable(String dockableId) {
		getLayout().add(dockableId);
	}
	
	public boolean removeDockable(String dockableId) {
		return (getLayout().remove(dockableId) != null);
	}
	
	public Dockable getDockable(String dockableId) {
		return (Dockable) getLayout().getDockable(dockableId);
	}
	
	public void addLayoutListener(LayoutListener listener) {
		getLayout().addListener(listener);
	}
	
	public void removeLayoutListener(LayoutListener listener) {
		getLayout().removeListener(listener);
	}
	
	public Dockable[] getDockables() {
		return getLayout().getDockables();
	}
	
	public DockingState getDockingState(String dockable) {
		return getLayout().getDockingState(dockable, false);
	}
	
	public DockingState getDockingState(Dockable dockable) {
		return getLayout().getDockingState(dockable, false);
	}

	public DockingState getDockingState(String dockable, boolean load) {
		return getLayout().getDockingState(dockable, load);
	}
	
	public DockingState getDockingState(Dockable dockable, boolean load) {
		return getLayout().getDockingState(dockable, load);
	}
	
	public LayoutSequence getInitialSequence() { 
		return getInitialSequence(false);
	}
	
	public LayoutSequence getInitialSequence(boolean create) {
		if(m_initalSequence==null && create)
			m_initalSequence = new LayoutSequence();
		return m_initalSequence;
	}
	
	public void setInitialSequence(LayoutSequence sequence) { 
		m_initalSequence = sequence;
	}
	
	public Layout getLayout() {
		return m_layout;
	}
    
    public void setLayout(Layout layout) {
        m_layout = layout;
    }
	
	public void reset(DockingPort port) {
		if(m_initalSequence!=null) {
			m_initalSequence.apply(port);
			
			Layout layout = getLayout();
			if(layout!=null) {
				layout.update(m_initalSequence);
                EventManager.getInstance().dispatchEvent(new PerspectiveEvent(this, null, PerspectiveEvent.RESET));
            }
		}
	}
	
	public void load(DockingPort port) {
		Layout layout = getLayout();
		if(layout.isInitialized()) {
			layout.apply(port);
			EventManager.getInstance().dispatchEvent(new PerspectiveEvent(this, null, PerspectiveEvent.RESET));
        } else {
			reset(port);
		}
	}
	
	public void unload() {
		Dockable[] dockables = getLayout().getDockables();
		for(int i=0; i<dockables.length; i++) {
			DockingManager.close(dockables[i]);
		}
	}
	
	public void cacheLayoutState(DockingPort port) {
		if(port!=null) {
			Layout layout = getLayout();
			LayoutNode node = port.exportLayout();
			layout.setRestorationLayout(node);
		}
	}
	
	public Object clone() {
		Perspective clone = new Perspective(m_persistentId, m_perspectiveName);
		clone.m_layout = (Layout)m_layout.clone();
		clone.m_initalSequence = m_initalSequence==null? null: (LayoutSequence)m_initalSequence.clone();
		return clone;
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -