5.15日 重新审视hellogef程序(2)

对hellogef.model进行了修改。

原来的程序中model有:

AbstractModel.java

ConnectionModel.java

Diagram.java

NodeModel.java

现在的程序中model增加了:LeftModel.java   RightModel.java    
MoveModel.java   StartModel.java  StopModel.java

并且上述几个都继承自抽象类NodeModel。

所做的修改:

nodemodel --> nodepart--> nodefigure --> partfactory -->
palettefactroy

Model部分:

将nodemodel改为了抽象类,并且新建了几个model,比如Movemodel。

public class MoveModel extends NodeModel {
   
       public MoveModel(){
       
          this.name = "移动";
     
     }
}

public abstract class NodeModel extends AbstractModel {

//public NodeModel(){
 
                //this.name =
"节点";
     
    //}

}

 

EditPart部分:

将nodepart改为了抽象类,并且新建了几个part,比如Movepart。

protected abstract IFigure createFigure() ;

public class MovePart extends NodePart {
   
     protected IFigure createFigure() {
     
      return new MoveFigure();
       
    }

//我觉得这个可以修改下,能不能install其他的policy呢,改后的变化又是什么?
        //protected void
createEditPolicies() {
 
         
 //installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new
NodeDirectEditPolicy());
           
 //installEditPolicy(EditPolicy.COMPONENT_ROLE, new
NodeEditPolicy());
 
         
//installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new
NodeGraphicalNodeEditPolicy());
 
      //}


//需要重写吗?其中的node什么需要改成move么?
//先试一下不重写,效果是什么。如果将nodefigure和movefigure设置的不一样,那么refresh之后到底出现的是谁的图,还是bug?
          //protected
void refreshVisuals() {
 
              //NodeModel node = (NodeModel)
getModel();
   
            //Point loc =
node.getLocation();
 
             //Dimension size = new
Dimension(150, 40);
 
             //Rectangle rectangle = new
Rectangle(loc, size);
 
             //((NodeFigure)
this.getFigure()).setName(((NodeModel)
this.getModel()).getName());
           
   //((GraphicalEditPart) getParent()).setLayoutConstraint(this,
getFigure(), rectangle);
           
  //}

}

Figure部分:

将nodefigure改为了抽象类,并且新建了几个figure,比如Movefigure。

public abstract class NodeFigure extends Shape

public class MoveFigure extends NodeFigure {

}

暂时未改。

partfactory部分:

public class PartFactory implements EditPartFactory {

public EditPart createEditPart(EditPart context, Object model) {
 
      EditPart part = null;
        if
(model instanceof Diagram)
            part =
new DiagramPart();
       else if (model instanceof
ConnectionModel)
            part = new
ConnectionPart();
       else
   
        part = new MovePart();

   
        part.setModel(model);
       
    return part;
     
 }
}暂时只试一下movepart。

palettefactory部分:

private static PaletteContainer createComponentsDrawer() {

PaletteDrawer drawer = new
PaletteDrawer("节点组");
         List entries = new
ArrayList();

ToolEntry tool = new
CombinedTemplateCreationEntry("Move", "创建一个节点",
MoveModel.class, new
SimpleFactory(MoveModel.class), null, null);
 
       entries.add(tool);

     
   ToolEntry tooltwo = new CombinedTemplateCreationEntry("Left",
"创建一个节点", LeftModel.class, new
SimpleFactory(LeftModel.class), null, null);
 
       entries.add(tooltwo);

   
     drawer.addAll(entries);
       
 return drawer;
         }
}

还有几个功能没完成,editor的界面太短,不能往下翻。不能放大缩小。节点没有图标。

最重要的一个功能:属性设置,到底是弹出框还是在属性页显示呢?不同的model的属性如何定义,速度、位移等。

时间: 2024-08-25 07:40:44

5.15日 重新审视hellogef程序(2)的相关文章

(X6支持https)2017年9月15日友价T5X6商城站长交易源码仿互站送手机版程序8套模版

(https专版)2017年9月15日友价T5X6商城站长交易源码仿互站送手机版程序8套模版 修复官方版本的各种问题,, 安装步骤,1.将源码上传到主机,2.专入数据库文件.依次导入codes_170915.sql codes_data.sql codes_data_city.sql后台用户名密码: admin admin123 友价源码 X620170915补丁(主要修复https SSL及兼容问题) 以下是本次补丁的升级内容: 1.修复https微信登录功能2.手机版SSL错误,兼容http

资讯 | 2018年1月15日微信公开课解读!微信小程序开发资源

引言:2018年1月15日 微信公开课PRO开课了,本次课时内容将涉及:小程序.智慧零售.企业微信.小游戏  (附学习参考资料) 为了快速理解「2018 微信公开课 PRO 版」上张小龙的一小时演讲内容,结合下午微信公开课课室A_B_C的课时安排,这里为大家提前整理了相应的小程序学习参考资料: 微信公开课pro_A课室(14:00-17:50) 主题:小程序产品能力.开发.应用及规则 一.如何开发一个优秀的微信小程序/小游戏 微信小程序官方工具  https://mp.weixin.qq.com

2017年 1月 15日 指针 学习整理

有关指针的概念: 指针是一个特殊的变量,它里面存储的数值被解释为内存里的一个地址. FIrst of all:我们需要明确目标 关于指针的学习以及使用我们需要搞清楚有关指针的四个内容:指针的类型,指针所指向的类型,指针的值(或者说叫指针所指向的内存区),还有指针本身所占用的内存区(指针也是一个特殊的变量吗,它肯定也是占据内存的).接下来让我们分别进行学习. 我们先来申明几个指针的例子: 1 int *ptr; 2 char *ptr; 3 int **ptr; 4 int (*ptr)[3];

2015年10月15日项目经理中项作业(质量管理与人力资源管理)

2015年10月15日作业(10.11章) 10章.质量管理: 1.项目质量规划的方法/技术和工具,并简要描述: 效益/成本分析 基准比较 流程图 实验设计 质量成本分析 质量功能展开(QFD) 过程决策程序图法(PDPC) 2.项目质量保证的方法/技术和工具,并简要描述: 项目质量管理通用方法(     ) 过程分析 项目质量审计 3.项目质量控制的方法/技术和工具,并简要描述: 测试 检查 统计抽样 6σ 因果图 流程图 直方图 检查表 散点图 排列图 控制图 相互关系图 亲和图 树状图 矩

2015年7月15日 项目开发文档

日期 2015年7月15日 星期 星期三 位置 中蓝公寓蓝芳园D507 主要工作 1)         修改小错误 2)         将发送邮件功能添加到总程序中 3)         实现了多台机器远程通信功能 4)         对系统进行JUnit 5)         对系统进行人工手动测试 遇到的问题 1)         系统无法实现进行多台机器远程通信 2)         eclipse的JUnit和netbeans不一样,但之前只学习过eclipse的JUnit 3)  

2015年9月10日课程作业【程序包管理:rpm, yum】_JY1506402-19+liuhui880818

<Linux系统管理> (1)磁盘和文件系统管理: (2)RAID, LVM; btrfs; (3)程序包管理:rpm, yum(dnf) (4)Linux的网络管理; (5)进程和作业管理:htop, glances, tsar: (6)sed和awk: (7)Linux系统的开机启动流程: (8)内核基础知识,内核定制编译: (9)系统安装:kickstart, pxe 一.作业(练习)内容: 1.总结rpm和yum实现程序包的管理功能. 要求:作业要图文并茂 二.完成时间: 2015年9

20150716,微软7月15日发布14个安全补丁

大家好,我们是微软大中华区安全支持团队. 微软于北京时间2015年7月15日发布了14个新的安全公告,其中4个为严重等级,10个为重要等级,修复了Microsoft Windows.Microsoft Office.Internet Explorer和SQL Server 中的漏洞.其中MS15-065中所修复的漏洞CVE-2015-2425.CVE-2015-2425和CVE-2015-2398已公开披露,同时微软已经发现针对CVE-2015-2425的漏洞利用.MS15-077中的漏洞CVE

2015年9月13日和15日【shell、sed&awk 的使用(一)】-JY1506402-19+liuhui880818

目录: 一.shell程序的运行原理 二.shell常用技巧 1.命令历史 2.命令别名 3.命令引用 4.文件名通配 5.常用快捷键 6.补全功能 7.输入输出重定向和管道 8.与用户交互命令 9.脚本的规范建立与执行 10.bash常用选项 11.命令状态结果 持续发现中... 三.常用知识点说明 1.变量 1)变量类型 2)本地变量 3)环境变量 4)特殊变量 2.条件测试 1)整数测试 2)字符串测试 3)文件测试 4)测试表达式 3.条件判断(选择执行) 4.脚本参数(位置参数变量)

20141015,微软10月15日发布8个安全补丁

大家好,我们是微软大中华区安全支持团队. 微软于北京时间2014年10月15日发布了8个新的安全公告,其中3个为严重等级,5个为重要等级,共修复Windows,Office. NET Framework. ASP.NET和Internet Explorer (IE)中的24个漏洞.与以往一样,我们推荐您安装所有更新,对于暂时只采用部分更新的用户,我们推荐您首先部署等级为"严重"的安全公告. 其中MS14-056可解决 Internet Explorer 中 14 个秘密报告的漏洞.最严