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

📄 nodepropertysource.java

📁 对eclipse gef进行封装,可以生成图形化编辑器
💻 JAVA
字号:
/*******************************************************************************
 * $Header: /cvsroot/EOS6/work_dir/niegy/com.primeton.studio.gef.ui/src/com/primeton/studio/gef/ui/properties/NodePropertySource.java,v 1.2 2006/12/16 09:04:42 niegy Exp $
 * $Revision: 1.2 $
 * $Date: 2006/12/16 09:04:42 $
 *
 *==============================================================================
 *
 * Copyright (c) 2001-2006 Primeton Technologies, Ltd.
 * All rights reserved. 
 * 
 * Created on 2006-10-30
 *******************************************************************************/


package com.primeton.studio.gef.ui.properties;

import org.eclipse.gef.commands.Command;
import org.eclipse.gef.commands.CommandStack;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.eclipse.ui.views.properties.PropertySheet;
import com.primeton.studio.gef.ui.commands.SetPropertyValueCommand;

/**
 * TODO此处填写 class 信息
 *
 * @author niegy (mailto:niegy@primeton.com)
 */
/*
 * 修改历史
 * $Log: NodePropertySource.java,v $
 * Revision 1.2  2006/12/16 09:04:42  niegy
 * 重构代码
 *
 * Revision 1.1  2006/11/22 07:07:38  niegy
 * 增加table
 *
 * Revision 1.1  2006/11/17 03:15:13  niegy
 * create
 * 
 */
public class NodePropertySource implements IPropertyObject,IPropertySource {
	private Element element;
    private Object model;
    private Object root;
    private String pluginId;
    protected IPropertyDescriptor[] descriptors;
    
    public NodePropertySource(Object model,String pluginId) {
        this.model = model;
        element = new Element((com.primeton.studio.gef.core.Element)model,pluginId);
        this.pluginId = pluginId;
    }
    
    public Object getRoot()
    {
        return root;
    }

    public void setRoot(Object root)
    {
        this.root = root;
    }

    
    public Object getModel() {
        return model;
    }   

    public Object getEditableValue() {
        return this;
    }

    public IPropertyDescriptor[] getPropertyDescriptors() {
        // TODO Auto-generated method stub
        return  element.getPropertyDescriptors();
    }
    
    public boolean isPropertySet(Object id) {
        return false;
    }
    
    public boolean isPropertyResettable(Object id) {
        return false;
    }
    
    public void resetPropertyValue(Object id) {}


    /* (non-Javadoc)
     * @see com.primeton.bibo.eos.ui.properties.IPropertyObject#getEditorPart()
     */
    public IEditorPart getEditorPart() {
        // TODO Auto-generated method stub
        return null;
    }


    /* (non-Javadoc)
     * @see com.primeton.bibo.eos.ui.properties.IPropertyObject#getElement()
     */
    public Object getElement() {
        // TODO Auto-generated method stub
        return null;
    }


    public Object getPropertyValue(Object id) {
        // TODO Auto-generated method stub
        return element.getPropertyValue(id);
    }


    /* (non-Javadoc)
     * @see com.primeton.bibo.eos.ui.properties.IPropertyObject#setEditorPart(org.eclipse.ui.IEditorPart)
     */
    public void setEditorPart(IEditorPart part) {
        // TODO Auto-generated method stub
        
    }


    /* (non-Javadoc)
     * @see com.primeton.bibo.eos.ui.properties.IPropertyObject#setPropertyValue(java.lang.Object, java.lang.Object)
     */
    public void setPropertyValue(Object id, Object value) {
        // TODO Auto-generated method stub
        Object oldValue = getPropertyValue(id);
        if(!(oldValue instanceof NodePropertySource) && (oldValue != null || value != null) && (oldValue == null || !oldValue.equals(value)))
        {
            PropertySheetPageEx propertySheetPage = getPropertySheetPage();
            if(propertySheetPage != null)
            {
                CommandStack commandStack = propertySheetPage.getCommandStack();
                SetPropertyValueCommand command = new SetPropertyValueCommand(this, id, value);
                setCommandAdapter(command, id);
                commandStack.execute(command);
            }
        }
    }
    
    public PropertySheetPageEx getPropertySheetPage()
    {
        IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
        org.eclipse.ui.IViewPart view = page.findView("org.eclipse.ui.views.PropertySheet");
        if(view == null)
            try
            {
                view = page.showView("org.eclipse.ui.views.PropertySheet");
            }
            catch(PartInitException e)
            {
                e.printStackTrace();
            }
        org.eclipse.ui.part.IPage propertySheetPage = ((PropertySheet)view).getCurrentPage();
        if(propertySheetPage instanceof PropertySheetPageEx)
            return (PropertySheetPageEx)propertySheetPage;
        else
            return null;
    }
    
    public void setPropertyValueImpl(Object obj, Object obj1) {
        // TODO Auto-generated method stub
        element.setPropertyValue(obj,obj1);
    }
    
    public void setCommandAdapter(Command basecommand, Object obj) {
        // TODO Auto-generated method stub

    }
    
    
}

⌨️ 快捷键说明

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