文档库 最新最全的文档下载
当前位置:文档库 › 13 Eclipse 的界面开发

13 Eclipse 的界面开发

13 Eclipse 的界面开发
13 Eclipse 的界面开发

13Eclipse的界面开发

Eclipse平台的用户界面是采用SWT和JFace开发的。SWT和JFace是Eclipse特有的用户界面API包,它们可以用于开发单独的GUI本机应用程序。SWT(StandardWidgetToolkit)是为Java开发人员提供的标准小窗口工具箱,它与底层操作系统的GUI组件紧密集成,提供可移植的API。JFace 是一个用户界面工具箱,它提供较难实现的、用于开发用户界面的helper类。JFace建立在原始小窗口系统之上,它提供常用的用户界面编程的类,包括查看器动作和添加项,图片和字体注册表,以及对话框和向。

本章将详细介绍这两个API的使用以及如何用它们来开发用户界面。

13.1SWT简介

标准小窗口工具箱(SWT)是一个库,它依赖本机操作系统GUI控件的实现,以创建Java版的GUI控件。

13.1.1SWT的特征

SWT类似于JDK的AWT/Swing,不同之处是SWT使用了许多本机窗口小部件。由于窗口小部件系统与生俱来的复杂性以及不同系统之间的差别,即使在理想情况下,要实现和维护跨台的窗口小部件库也是很难的。目前,有几种技术能够明显减少问题的复杂度,SWT库采用了这些技术中的底层实现技术。Eclipse提供的SWT使用JNI调用操作系统的内部API,所以能够实现与本机应用程序相同的外观。不仅如此,SWT还可以在Java方法和操作系统的调用之间建立一对一的对应关系。事实上,这正是SWT取得成功的最重要的因素之一。

采用SWT技术开发的应用程序有以下几个特征。

(1)它的外观、执行和行为都类似于本机应用程序。

(2)应用程序中的窗口小部件都依赖于本机操作系统提供的窗口小部件(或组件、控件)。(3)本机GUI库的任何特殊行为都会在采用SWT的用户界面中表现出来。

(4)SWT应用程序的代码并不依赖于某个特定的台。

SWT中的窗口小部件(例如按钮、列表等)通过带有系统内部API的OS类、Callback以及COM 调用共有的DLL向操作系统发送消息,而这些操作都被JVM、SWT封装起来,因此,SWT应用程序并不依赖于某一个平台。

13.1.2SWT代码的功能划分

SWT的源代可以从https://www.wendangku.net/doc/ac4804824.html,/pub/arti下载。

(1)org.eclipse.swt下包含SWT、SWTException和SWTError类。SWT定义了公共的常量。SWTException是运行时异常,当SWT内部发生任何可恢复的错误时就会抛出这个异常类。SWTError 是SWT内部发生的无法恢复的错误产生的异常。

(2)org.eclipse.swt.widgets包含SWT窗口小部件的公共API类,例如Button、Shell和Display等。(3)org.eclipse.swt.events提供了SWT事件监听器,还有与其对应的Adapter类和Event类。

(4)https://www.wendangku.net/doc/ac4804824.html,yout提供控制GUI程序中小部件布局的Layout类。

(5)org.eclipse.swt.graphics提供实现基本画图操作的类,例如Color、Rectangle等。

(6)org.eclipse.swt.printer提供对打印服务的支持。

(7)org.eclipse.swt.ole.win32提供SWT中Win32OLE实现的类。

还有其他一些包,这里就不一一介绍。对于一般的GUI编程,widgets、events和layout是3个最基本、最重要的包。

13.1.3SWT的主要类和组件

1.Display类

Display类不是可视的表单,它负责管理GUI资源以及与操作系统之间的通信。它只关心自身的窗口是如何显示、移动和重画的。此外,它还负责将类似鼠标单击和敲击键盘的事件发送给处理这些事件的窗口小部件。

Display类可能仅仅出现在GUI代的几行,但是理解它内部的操作过程是很重要。任何SWT/JFace 应用程序,都必须在程序里包含一个Display的实例,以便应用程序使用操作系统的窗口小部件和容器,并且响应用户请求。

Display的主要任务是将SWT/JFace命令从代码转换成操作系统的底层调用。一旦应用程序创建了Display的实例,这个转换过程就开始了。该过程包含两部分:首先,Display对象创建一个OS类的实例,这个实例代表了本机操作系统,OS类通过一些特殊的、称为本方法的Java过程使用计算机底层资源;然后,Display对象使用这些方法将命令发送给操作系统,并且将用户动作传递给应用程序。

值得注意的是,如果操作系统中某些内容没有加入SWT,只要在SWT添加一个本方法函数,并且在本图形库里添加一个调用操作系统函数的C函数,就可以使用JNI添加这些内容。

表13-1所示列出了一些Display的方法,这里只列出了SWT/JFace中比较重要的方法。

任何基于SWT的GUI程序,都必须使用前两个方法。Display()创建一个Display类的实例并且将其与GUI关联;getCurrent()返回应用程序的主线程,这个方法通常与dispose()一起使用,用于结束Display的操作。

其他两个方法允许应用程序在用户执行一个操作后,接收操作系统的通知。

readAndDispatch()方法使用操作系统的事件队列,并且决定是否将用户的动作与程序的GUI相关。2.Shell类

Display类负责窗口管理,而Shell类是GUI的主要窗口。Shell实例是可见的,它通过OS类可以在一定程度上使用操作系统的函数,但仅限于打开、激活、最大化、最小化和关闭主窗口。容器、窗口小部件和事件都需要整合到GUI中,而Shell类的主要功能正是为它们提供一个公共的连接点。图13-1所示描述了操作系统、Display类、Shell类和窗口小部件之间的关系。

每个SWT/JFace应用程序都是将窗口小部件建立在一个主Shell对象之上。但是应用程序里也可能含有其他Shell实例,它们一般用于建立临时的窗口或对话框。由于这些Shell不直接依赖于Display,它们都被称为二级Shell,而直接依赖于Display的Shell被称为顶层Shell。

3.Widget类

Widget类是SWT/JFace中所有可视组件的父类,它是一个抽象类。https://www.wendangku.net/doc/ac4804824.html,不推荐从该类创建子类或直接在代中使用该类,但是这个类很重要,因为它将所有的小部件统一在一个结构之下。表13-2所示列出了Widget类中定义的一些主要方法。

4.Control类

SWT/JFace使用操作系统提供的窗口小部件来显示自己的图形界面,但是不同的台提供的GUI组件并不一样,而且SWT只能完全支持其中的一部分窗口小部件。Control类的对象在操作系统中都有一个对应的组件,可以通过该类的句柄(handle)来使用它。SWT还提供了许多Control类以外的窗口小部件,如图13-2所示。

最常用的窗口小部件(例如Label、Button和Composite)都是Control类的子类。由于这些类具有与之关联的操作系统GUI的小部件的句柄,所以可以使用和配置这些对象,普通的Widget类(这里是指它的子类)没有这个句柄。下面介绍Control类的两类方法,如表13-3和表13-4所示。

computeSize()和pack()都提供了带有一个Boolean参数的重载方法,可以使用这两个方法告诉布局管理器小部件的属性已经改变了。

5.SWT的显示组件

这些组件主要用来显示文字、图片等信息,下面简要介绍这些类。

(1)Label类是Control类中最简单的子类。它在GUI里显示静态信息,例如字符串或图片等。(2)Canvas类显示任意表格。它不仅提供类似Composite容器的性质,而且可以通过一些样式来决定在自身区域里如何显示图形。

(3)List小部件显示一组元素,并且允许选择一个或多个元素。

(4)Table是一个二维表格。

(5)Tree控件按照层次结构显示数据,以便用户可以清楚看到不同元素之间的关系。Tree控件为具有父子关系的对象提供这种功能。

(6)ProgressBar显示进度条,可以显示某个操作的进度。

6.SWT的输入组件

(1)Button类。除了菜单栏以外,GUI用户使用最多的就是按钮了。

(2)Text控件允许用户输入任何形式的文字。StyledText类允许修改控件和文字的颜色和样式。(3)Combo控件允许用户从一列选项中选择某个选项。Combo控件有3种样式:Simple,包含一个可编辑的文本框和一个列表框,这是缺省的Combo样式;Drop-down,一个可编辑的文本框,文本框的右边有一个箭头,单击箭头就会出现一组选项;Read-only,用户不能输入文字,只能从选项中选择。

(4)Slider控件类似滚动条,它能够进行数值设置。

7.菜单栏和工具栏

(1)Menu,菜单栏显示【文件】、【编辑】等。

(2)ToolBar显示工具栏。

(3)CoolBar类似ToolBar,只是CoolBar上的项目可以动态更改大小和位置。

8.SWT的容器组件

(1)Composite对象一般用来组织GUI中的窗口小部件。

(2)Group是Composite的子类,同时也是最容易使用的。它本身并不执行任何动作,但是它可以改进应用程序的外观和组织形式。

(3)Group适合静态显示,但有时候可以依据程序需要动态改变大小。SashForm将容器区域分成两部分,允许用户在增加一个小部件的同时减少另一个部件。

(4)TabFolder扩展了Composite的功能,它可以把多个Composite对象包含在一个容器里。该类的实例能包含其他的容器,可以通过Tab换页切换这些容器。

9.对话框组件

(1)ColorDialog允许用户选择字体的颜色。

(2)DirectoryDialog用于选择一个目标目录的对话框。

(3)FileDialog与DirectoryDialog类似,但是FileDialog会列出目录下的文件,而DirectoryDialog只列出目录。

(4)FontDialog用于修改字体的对话框。

(5)MessageBox用来显示消息。

10.布局管理组件

(1)FillLayout将小部件以相等的间隔放在容器里。缺省情况下,控件从左到右放置。

(2)RowLayout水或垂直配置小部件,可以指定旁边的间隔以及控件之间的间隔。

(3)GridLayout建立在RowLayout之上,允许开发者设置行数和列数。

(4)FormLayout参照其他窗口进行布局设置。

(5)StackLayout只显示最上层的窗口小部件。

11.事件调用组件

对于任何GUI应用程序,不管它采用什么语言或界面工具箱,操作系统都会检测GUI事件。尽管不同的操作系统处理事件的机制不同,但是基本上差别不大,图13-3所示描述了SWT的事件处理机制。

用户在GUI上发生动作之后,操作系统会在生成GUI事件同时确定哪个窗口和应用程序接收这个事件,然后操作系统利用其事件处理队列保存用户发出的动作。任何GUI应用程序的底层结构都是事件循环。一旦SWT应用程序开始运行,Display类就会使用

readAndDispatch()方法和msg变量对事件处理队列进行排序,msg变量是底层操作系统的消息队列的一个句柄。Display只从队列中读取GUI事件。如果它找到相关的事件,就将该事件发送给顶层的Shell对象,由Shell对象决定哪个窗口小部件可以接收该事件。然后,Shell将事件发送给用户使用的窗口小部件,小部件会将相关信息发送给对应的listener。listener会调用相应的方法处理用户的动作,这个方法被称为事件处理器。

GUI设计者的主要任务是决定需要处理哪个事件、创建相关的listener响应这些事件以及使用事件处理器执行必要的处理动作。

表13-5所示列出了SWT的Event类以及相关的listeners。

13.2基本控件

下面将结合实例介绍SWT中的基本控件。

13.2.1标签控件(Label类)

Label类的父类是org.eclipse.swt.widgets.Control,它实现了Drawable接口,可以说它是最简单的控件之一。表13-6所示列出了Label类的几种样式。

【实例13-1】MyLabel类(MyLabel.java)

importorg.eclipse.swt.SWT;

importorg.eclipse.swt.widgets.*;

publicclassMyLabel{

privateLabelmylabel;

privateShellshell;

privateDisplaydisplay;

publicMyLabel(){

super();

display=newDisplay();

shell=newShell(display);

shell.setSize(200,200);//设置shell的大小

mylabel=newLabel(shell,SWT.NONE);

mylabel.setBounds(38,21,100,18);//设置label所在的位置

mylabel.setText("Hello,world!");//设置label上显示的文字

}

publicvoidstart(){

shell.open();

while(!shell.isDisposed()){

if(!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

publicstaticvoidmain(String[]args)

{

MyLabellabel=newMyLabel();

label.start();

}

}

13.2.2文本框控件(Text类)

Text类可以用来输入字符,是比较常用的一个控件,它的用法也比较简单。下面将对其进行详细介绍。表13-7所示列出了常用的几个方法。

下面举例来说明这些方法的用法,代如下。

【实例13-2】MyText类(MyText.java)

importorg.eclipse.swt.SWT;

importorg.eclipse.swt.widgets.Display;

importorg.eclipse.swt.widgets.Text;

importorg.eclipse.swt.widgets.Shell;

publicclassMyText{

privateShellshell;

privateDisplaydisplay;

privateTexttext;

publicMyText(intlimit,charecho,inttabs){

super();

display=newDisplay();

shell=newShell(display);

shell.setSize(200,200);//设置shell的大小

text=newText(shell,SWT.NONE);

text.setBounds(38,21,100,18);//设置label所在的位置

text.setText("Hello,world!");

text.setEchoChar(echo);

text.setTabs(2);

text.setTextLimit(limit);

}

publicvoidstart(){

shell.open();

while(!shell.isDisposed()){

if(!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

publicstaticvoidmain(String[]args){

MyTexttext=newMyText(10,'c',2);

text.start();

}

}

运行该类,显示的窗口如图13-4所示。可以发现,Text里的字符都被“c”替换了,而且输入的字符数也被控制在10个字符。

13.2.3树形控件(Tree类)

树形控件将内容按照树结构显示出来。Tree类有自己的TreeItem类,它表示树中的每一个节点。下面通过一个实例介绍如何创建一个树形控件,以及当点击某个树节点时如何得到树节点的值。

【实例13-3】MyTree类(MyTree.java)

importorg.eclipse.swt.SWT;

importorg.eclipse.swt.events.SelectionAdapter;

importorg.eclipse.swt.events.SelectionEvent;

https://www.wendangku.net/doc/ac4804824.html,yout.FillLayout;

importorg.eclipse.swt.widgets.Display;

importorg.eclipse.swt.widgets.Shell;

importorg.eclipse.swt.widgets.Tree;

importorg.eclipse.swt.widgets.TreeItem;

publicclassMyTree{

privateShellshell;

privateDisplaydisplay;

privateTreetree;

publicMyTree(){

super();

display=newDisplay();

shell=newShell(display);

shell.setLayout(newFillLayout());

tree=newTree(shell,SWT.SINGLE);

TreeItemitem=newTreeItem(tree,SWT.NONE);

item.setText("水果");

newTreeItem(item,SWT.NULL).setText("苹果");

newTreeItem(item,SWT.NULL).setText("香蕉");

newTreeItem(item,SWT.NULL).setText("梨");

newTreeItem(tree,SWT.NONE).setText("蔬菜");

//当点击Tree的某个节点时,将该节点的文字显示在标题栏中

tree.addSelectionListener(newSelectionAdapter(){

publicvoidwidgetSelected(SelectionEvente){

TreeItem[]items=tree.getSelection();

shell.setText(items[0].getText());

}

});

}

publicvoidstart(){

shell.open();

while(!shell.isDisposed()){

if(!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

publicstaticvoidmain(String[]args){

MyTreetree=newMyTree();

tree.start();

}

}

运行该实例,结果如图13-5所示。

13.3SWT的资源管理

SWT是采用Java技术开发的,Java语言的一大优势就是JVM的垃圾回收机制(Garbagecollection)。有了这个机制,以往令开发人员头痛的变量释放、内存回收等问题就迎刃而解了。Java里的Swing 使用了Java的垃圾回收机制,JVM会生成一个在应用层下面运行的线程(后台线程)来负责释放不使用的对象的内存。该线程在程序运行时开始运行,并且它执行垃圾回收的时机也是独立于开发者的。

自动垃圾回收机制主要的优势在于开发者可以把精力集中在代设计上而不是跟踪每个对象的生命周期;缺点则是垃圾回收的发生是不确定的,开发者无法知道在什么时候执行垃圾回收。此外,对于不同台上的不同JVM,自动垃圾回收的性能都是不一样的。这就造成了需要在创建和释放对象时花费很多时间的程序,在不同的系统上的运行时间、效率的不一致。

SWT/JFace并没有采用自动垃圾回收机制。有两个原因致Eclipse最终放弃在SWT/JFace里采用自动垃圾回收机制。

(1)在程序执行过程中,自动释放内存的发生是不确定的,并且它并不标明什么时候空闲内存是可用的。如果在释放过程中发生了非常规的事情,这个释放过程很有可能没有完成。对于简单的数据结构,这只是个小问题。但是当这些对象构成一个大的界面应用程序时,内存分配和释放变得很重要,必须完全理解里面的行为。

(2)对于操作系统资源,难以使用自动垃圾回收机制。自动释放底层资源(例如SWT的窗口小部件)在不同的平台上不同而且极易出错,如果释放这些对象花费了太多的时间,或者按照错误的顺序释放对象,内存漏洞就会致程序崩溃。

为了消除自动垃圾回收带来的错误,SWT/JFace允许开发者决定什么时候应该释放资源,组件提供dispose()方法来简化这个过程。一旦释放了父类资源,子类资源也会自动释放,也就是说在大多数应用程序里只需要显示调用很少的dispose()方法就能实现内存的释放。

13.4开发SWT应用程序

在使用SWT时,首先要获得资源库。在Eclipse平台下,可以直接使用Eclipse本身带有的资源库。使用SWT,必须具备以下两个资源库。

(1)SWT资源库。它位于/plugins目录下,不同的Eclipse版本,目录名不一样,一般目录名都是org.eclipse.swt.win32_x.x.x,在该目录下的/ws/win32子目录里可以找到swt.jar。

(2)本资源库文件。在Windows平台下,可以在/org.eclipse.swt.win32_x.x.x/os/win32下面找到swt-win32-3063.dll。

下面这个实例将包括一些常用组件。

(1)创建一个Java项目,取名为Chpater13。

(2)在“新建项目”窗口中,选中“库”选项卡,单击【添加外部JAR】按钮,在/plugins子目录下的/org.eclipse.swt.win32_3.0.1/ws/win32目录中找到swt.jar文件,如图13-6所示。

(3)单击【完成】,Chapter13项目就新建完成了。

此时就可以开始创建SWT程序了,首先写一个较简单的程序,在Chapter13下新建一个名为SWTTest 的类,输入实例13-4的代。

【实例13-4】SWTTest类(SWTTest.java)

importorg.eclipse.swt.SWT;

importorg.eclipse.swt.widgets.Display;

https://www.wendangku.net/doc/ac4804824.html,bel;

importorg.eclipse.swt.widgets.Shell;

importorg.eclipse.swt.widgets.MessageBox;

publicclassSWTTest{

/**

*@paramargs

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

//生成一个窗口,并且在窗口中创建label

Displaydisplay=newDisplay();

Shellshell=newShell(display);

Labellabel=newLabel(shell,SWT.CENTER);

//设置label显示的文字,大小

label.setText("Hello,world!");

label.setBounds(shell.getClientArea());

//生成弹出的窗口

MessageBoxmessage=newMessageBox(shell,SWT.OK|SWT.CANCEL);

message.setMessage("Hello,world!");

message.open();

shell.pack();

shell.open();

while(!shell.isDisposed()){

if(!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

}

运行上述代,可以看到控制台视图输出错误信息,如图13-7所示。

这是由于SWT采用了JNI技术,必须找到对应的JNI本地化库文件程序才能正确运行。

由于程序运行时,没有找到这个库文件,所以SWTTest.java会抛出“noswt-win32-3063injava.library.path”的异常信息。为了解决这个错误,需要设置JVM的执行参数java.library.path,以便在程序运行时使用本库。这个本库文件可以在/plugins/org.eclipse.swt.win32_3.0.1/os/win32/x86目录下找到(文件名是swt-win32-3063.dll)。

设置JVM运行时参数的步骤如下。

(1)选择项目,在Eclipse菜单栏选择【运行→运行】子菜单,选择“自变量”选项卡,如图13-8所示。

(2)在“VM自变量”中输入如下内容:

Djava.library.path=E:\eclipse\plugins\org.eclipse.swt.win32_3.0.1\os\win

32\x86

(3)单击【应用】按钮和【运行】按钮。

程序运行后,将会先弹出一个消息框,单击某个按钮后弹出另一个窗口,程序运行结果

如图13-9所示。

13.4.2较为复杂SWT实例

下面在该项目里构建复杂一些的SWT程序,新建一个名为MyTray的类,输入实例13-5的代。

这个程序里新建了一个菜单栏(里面包含了3个选项),一个按钮、一个标签以及操作系统通知区域里的一个图标。单击按钮或者菜单项,标签的内容都会发生相应的改变,单击通知区域里的图标可以在显示和隐藏用户界面之间切换。

【实例13-5】MyTray类(MyTray.java)

importorg.eclipse.swt.*;

importorg.eclipse.swt.widgets.*;

importorg.eclipse.swt.events.*;

https://www.wendangku.net/doc/ac4804824.html,yout.FillLayout;

importorg.eclipse.swt.graphics.Image;

publicclassMyTrayimplementsSelectionListener{ privateDisplaydisplay;

privateShellshell;

privateButtonbutton;

privateLabellabel;

privateTraytray;

privateTrayItemti;

privateMenumenu;

privateMenuItemmi1;

privateMenuItemmi2;

privateMenuItemquit;

publicMyTray(){

display=Display.getDefault();

shell=newShell(display);

shell.setSize(200,200);

FillLayoutfillLayout=newFillLayout();

fillLayout.type=SWT.VERTICAL;

shell.setLayout(fillLayout);

label=newLabel(shell,SWT.UP);

button=newButton(shell,SWT.DOWN);

button.setText("Start!");

//在button中添加事件处理侦听器

button.addSelectionListener(newSelectionAdapter(){ publicvoidwidgetSelected(SelectionEvente){

if(button.getText().equals("Start!")){

button.setText("Clicked");

}else{

button.setText("Start!");

}

label.setText("Youclicked!");

}

});

//创建菜单栏以及菜单中的选项

menu=newMenu(shell,SWT.BAR);

shell.setMenuBar(menu);

mi1=newMenuItem(menu,SWT.PUSH);

mi1.setText("MenuItem1");

mi1.addSelectionListener(this);

mi2=newMenuItem(menu,SWT.PUSH);

mi2.setText("MenuItem2");

mi2.addSelectionListener(this);

quit=newMenuItem(menu,SWT.PUSH);

quit.setText("Quit");

quit.addSelectionListener(this);

//生成SWT的tray,也就是在操作系统的通知区域显示的图标tray=display.getSystemTray();

ti=newTrayItem(tray,0);

//将光标移到该图案上,显示的提示语

ti.setToolTipText("ThisisaSWTTray!");

//图标的照片

ti.setImage(newImage(display,"sunset.jpg"));

//TrayItem注册事件侦听器

ti.addSelectionListener(newSelectionListener(){

//左键单击

publicvoidwidgetSelected(SelectionEvente){

System.out.println("TraySelcted");

//左键单击时隐藏、显示主窗口

if(shell.isVisible()){

shell.setVisible(false);

}else{

shell.setVisible(true);

shell.forceActive();

}

}

//左键双击,右键双击,都是此函数

publicvoidwidgetDefaultSelected(SelectionEvente){

System.out.println("TraywidgetDefaultSelected");

}

});

}

//单击菜单事件

publicvoidwidgetSelected(SelectionEvente){

System.out.println(e.getSource()+"selected.");

if(e.getSource()==mi1){

label.setText("YouselectedMenuItem1");

}

if(e.getSource()==mi2){

label.setText("YouselectedMenuItem2");

}

if(e.getSource()==quit){

System.out.println("Quit");

display.dispose();

System.exit(0);

}

}

//这个方法必须实现,即使它的代为空,因为这是SelectionListener定义的接口publicvoidwidgetDefaultSelected(SelectionEventarg0){

}

publicvoidstart(){

shell.open();

while(!shell.isDisposed()){

if(!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

publicstaticvoidmain(String[]args){

MyTrayapp=newMyTray();

app.start();

}

}

运行该程序,出现的窗口如图13-10所示。在操作系统的通知区域,应该有这样的图标。点击图标,可以隐藏用户界面。同时,Eclipse控制台窗口会出现一些打印信息。

13.5线程

任何操作台的GUI系统中,对控件或一些图形API的访问操作都要被严格同步串行化。例如,单击图形界面里的任何按钮,这个动作的处理方式是:用户的单击按钮事件被放入GUI系统的事件处理队列中(访问操作被串行化),然后依次处理(即访问操作被同步)。如果不按照这种方式,假如在单击按钮的事件还没有处理完,程序又发生了另一个使用该单击事件中某个资源的事件,势必会引起混乱。

Java语言就提供了多线程机制,然而这种机制并不适用于GUI编程,它不能保证对控件操作的同步和串行化。SWT采用了一种简单而直接的方式满足本GUI系统对线程的控制要求。在SWT中,有一个线程称为用户线程,只有这个线程可以调用控件和某些图形API的方法,非用户线程直接调用这些方法会抛出SWTException异常。Display类提供了两个方法,使得非用户线程可以间接调用控件的方法,这两个方法是syncExec(Runnable)和asyncExec(Runnable)。这两个方法的区别在于,前者要在指定的线程执行结束后才返回,而后者是在调用后立即返回到当前线程。

13.6JFace用户界面框架

Eclipse工作台为插件的用户界面定义了扩展点。这些扩展点,特别是向扩展,都采用JFace界面。JFace是一种用户界面工具箱,它提供难以实现的、用于开发用户界面的helper类。JFace在原始窗口小部件系统层之上运行。它提供以下几个类用于处理常用的用户界面编程任务。

(1)查看器(Viewer)负责处理填充、排序、过滤和更新窗口小部件等。

(2)动作(Action)和添加项(contribution)介绍定义用户动作的语法,并且指定在什么方提供它们。

(3)图像和字体注册表提供处理用户界面资源的常见模式。

(4)对话框和向定义了一个用于构建复杂的与用户进行交互的框架。

JFace使开发者能够集中精力实现插件的功能,而不是花费大量的精力在底层的窗口小部件系统,或是解决大多数用户界面应用中都出现过的问题。

SWT和JFace之间的区别很明显。设计JFace的目的是在SWT基础上提供常用用户界面的功能,JFace 并不隐藏或是替代SWT的功能。JFace提供了一些类和接口,它们用来处理许多常见的任务。这些任务与使用SWT开发的动态用户界面相关联。通过考察查看器以及它与SWT小部件之间的关系,能更清楚理解JFace和SWT之间的关系。

13.6.1查看器

查看器允许在使用模型对象的同时创建窗口小部件。如果直接使用SWT窗口小部件,就不得不将对象转换成SWT所期望的字符串和图像。查看器是SWT窗口小部件的适配器,用于处理窗口小部件事件的代,否则,开发者就必须自己实现。首先在ReadmeSectionsView的自述文件工具的视图添加项中实例化一个查看器。

publicvoidcreatePartControl(Compositeparent){

viewer=newListViewer(parent);

……

}

1.标准查看器

JFace为大多数重要的SWT窗口小部件提供了查看器。查看器通常用于列表、树、表和文本框窗口小部件。

每个查看器都有一个关联的SWT窗口小部件。通过在查看器的构造函数中提供父类Composite或创建窗口小部件,然后提供给构造函数中的查看器的方式,可以创建窗口小部件。标准查看器有如下两种。

(1)面向列表的查看器。对于用户来说,列表、树和表共享许多常用的功能,例如用于对象填充、排序、选择和过滤。这些查看器都会维持一个域对象(称为元素)的列表,并且在它们对应的SWT 窗口小部件中显示这些元素。一个列表查看器知道如何从列表里的任何一个元素获得一个文本标签,例如从ILabelProvider对象获得标签,ILabelProvider可以在查看器上设置。列表查看器还知道如何将窗口小部件映射回查看器客户所知道的元素。

使用平面SWT窗口小部件的客户不得不在SWT层进行操作,这些项目在SWT层都是字符串,并且事件对应着字符串列表里的索引。查看器提供了更高层的语义,通过使用窗口小部件提供给查看器的元素,客户会得到列表的选择和更改的通知。通过查看器,客户可以处理所有的繁琐工作,包

括将索引映射回元素、调整对象的过滤视图以及在必要时重新排序。

可以通过指定查看器排序器(ViewerSorter)或为查看器委派过滤器(ViewerFilter)实现过滤和排序的功能(除了列表查看器以外,也可以为树查看器和表查看器指定排序器和过滤器)。客户只需要提供一个用来比较或过滤列表中的对象的类,查看器会根据一定的顺序和过滤器填充列表,并且在添加和删除元素时维护这个顺序和过滤器。

不同的SWT的树控件,对应不同的树查看器。ListViewer将列表中的元素映射到SWT的List控件;TreeViewer显示SWT的Tree窗口小部件中的对象;TableViewer与列表查看器类似,但是它允许查看表中的每个元素的多列信息。

值得注意是,通过允许编辑单元,表查看器扩展了SWT表控件的功能。特殊的单元编辑器允许用户使用组合框、对话框或文本控件,以编辑表中的单元。通过使用CellEditor类(例如TextCellEditor、CheckboxCellEditor),表查看器负责生成和放置用户编辑所使用的控件。一个虚表只在查看的时候才会显示。无论实际创建了什么,表查看器只是执行一些指定的动作。

(2)文本查看器。文本控件有许多常用的语义,例如双击、撤销、着色以及通过索引或行数航。TextViewer是SWT中StyledText控件的适配器。文本查看器为用户提供了一个文档模型,并且负责将文档转换成文本控件提供的格式化文本信息。

2.查看器体系结构

为了理解查看器,必须熟悉查看器的输入元素、内容、选项以及正在处理的控件中实际显示的信息之间的关系。

(1)输入元素。输入元素是查看器显示(或编辑)的主要对象。从查看器的角度看,输入元素可以是任何对象。它并不要求输入对象实现某个特定的接口。

查看器必须能够处理输入元素的更改。如果查看器设置了一个新的输入元素,它必须根据这个新元素重新填充它的窗口小部件,并且取消其自身与以前的输入元素的关联关系。对于每类查看器,注册为输入元素上的侦听器(listener)的语义与根据输入元素填充窗口小部件的语义是不一样的。(2)内容提供器。内容查看器是具有严格定义的协议的查看器,这个协议用来从查看器的输入元素中获取信息。内容查看器使用两个专门的helper类(IContentProvider和ILabelProvider),以填充它们的窗口小部件和显示输入元素的信息。

IContentProvider提供基本的生命周期协议,以便将内容提供器与输入元素关联起来,同时处理输入元素的变更。IContentProvider为不同的查看器提供了多个专门的内容提供器。最常用的内容提供器是IStructuredContentProvider,它为给定的输入元素提供一列对象。IStructuredContentProvider用在类似列表的查看器中,例如列表、表或树。一般情况下,内容查看器知道如何在输入元素和希望的查看器内容之间进行映射。

ILabelProvider更深入一步。对于给定查看器的内容(从输入元素和内容提供器中得到),ILabelProvider可以产生特殊的UI元素,例如名字和图标等,这些元素被用来在查看器里显示内容。标签提供器可以帮保存图标资源,因为它们可以确保查看器中所有类型相似的元素都使用图标的相同实例。

标签提供器显示的内容并不局限于文本和图像。JFace提供了多个类和接口来支持最流行的额外的功能。

3.查看器和工作台

通过查看工作台如何使用查看器、内容提供器和标签提供器,就可以看到这三者的优势所在。WorkbenchContentProvider是一个结构化的内容提供器,通过查询它的子类可以从输入元素获得内容。为了实现普通的功能,又一次用到了适配器的概念。当从输入元素中请求元素列表时,WorkbenchContentProvider获得了一个IWorkbenchAdapter。如果IWorkbenchAdapter已经注册,那么内容提供器就可以认为这些元素可以被它的子类查询。当工作台改变时,WorkbenchContentProvider 还要立即更新它的查看器。

WorkbenchLabelProvider是一个标签提供器,为了找到它的文本和图像,它从一个对象中获得IWorkbenchAdapter实例。标签提供器对工作台对象特别有效,因为它允许单个标签提供器缓存在查看器中使用的图像。例如,一旦WorkbenchLabelProvider获得一个IProject使用的图像,它就可以缓存这个图像并且可以在查看器的其他IPoject对象中使用这张图像。

13.6.2动作和添加项

动作类允许定义用户命令,而不需要考虑它们在用户界面上的显示。这使得开发人员可以灵活地改变插件中动作的显示,而不需要修改真正执行操作的代。添加项用来管理实际的用户界面上的元素,这些元素表示命令。开发者不需要对添加项进行编程,但是可以在一个工作台和JFaceAPI中看到添加项的使用。

1.动作

动作(IAction)代表了能被用户激发的命令。通常,动作都与按钮、菜单项和工具栏中的项联系在一起。

虽然动作本身不在用户界面中,但是它们确实具有面向用户界面的性质,例如工具提示文本、标签文本和图像等。这允许其他类为动作的显示构造窗口小部件。

当用户在用户界面上触发某个动作,就会调用该动作的运行方法来执行实际的操作。运行方法中的一个常见模式是查询工作台选项,然后处理被选择的对象。另一个常见模式是动作发生时,启动一个向导或对话框。

不应该直接实现IAction接口,而应该创建Action类的子类。可以浏览Action类的子类以便了解动作类的许多常见模式。

下面的代实现了“关于”动作,它是工作台中较简单的动作之一。

publicvoidrun(){

newAboutDialog(workbenchWindow.getShell()).open();

}

当在工作台添加视图动作或编辑器动作时,需要使用IViewActionDelegate和IEditorAction-Delegate 接口。工作台动作代理是使用与之相关联的视图或编辑器的引用进行初始化的。工作台动作代理可以浏览工作台页面或窗口,以及使用执行动作所需要的选项和其他信息。

如果想在插件中定义一个命令,就需要实现自己的动作类。在将这些动作添加到其他视图和编辑器同时,也要实现动作代理。

2.添加项

添加项(IContributionItem)表示动作的用户界面部分。更确切说,它表示一个元素,这个元素将被添加到类似菜单栏和工具栏的共享用户界面资源中。

添加项知道如何使用正确的SWT项来填充特定的SWT窗口小部件,这个SWT项就表示这个添加项。

当在工作台用户界面中添加动作时,不需要创建添加项,因为当工作台为已经定义的动作创建用户界面元素时已经以用户的名义完成了这些工作。

3.添加项管理器

添加项管理器(IContributionManager)表示将在用户界面中显示的添加项的集合。通过使用已命名的添加项标识(id),可以添加和插入添加项,以便按照正确的顺序放置添加项,也可以通过标识找到并删除单个项。

每个IContributionManager的实现都知道如何用它的项填充特定的SWT窗口小部件。JFace为菜单、工具栏和状态栏提供了添加项管理器,分别是IMenuManager、IToolBarManager和IStatusLineManager。

插件开发者不需要实现这些接口,但是在API方法中,可以看到对某些管理器的引用。

13.6.3用户界面资源

org.eclipse.jface.resource包定义了帮插件管理用户界面资源(例如字体和图标)的类。许多工作台扩展点允许插件提供图标,这些图标用来在工作台中显示它们的添加项。因为GUI操作系统在内存中只能同时支持有限数量的图像和字体,所以必须小心管理插件的用户界面资源,有时可以在多个窗口小部件之间共享这些资源。

JFace提供了基本的支持类,这些类允许插件管理它们的图标和字体,而不需要担心什么时候创建和销毁对应的平台图形对象。这些支持类可以直接被插件使用,工作台使用这些类获得在扩展点标记中描述的图像。

1.图片描述符和注册表

SWT的Image类表示来自操作系统的透视图的图像。大多数GUI操作系统只能同时打开有限的图像,所以插件应该小心创建图像,并确保当图像不被使用的时能够正确销毁它们。通过使用JFace中的ImageDescriptor和ImageRegistry类而不是SWT图像,插件可以方便创建、管理和销毁这些图像。(1)图像描述符。ImageDescriptor类可以用来作为图像的轻量级描述。它指定创建图像所需要的所

有内容,例如可以获得图像的URL或是文件名等。ImageDescriptor不会分配实际的平台图像,除非使用createImage()发送特别请求。

当代设计为在一个位置定义所有的图标并且只在需要时进行分配,图像描述符就是最好的选择。用户可以在任何时候创建图像描述符,而不需要担心操作系统资源的问题。

(2)图像注册表。ImageRegistry类用来维持已命名的图像的列表。客户可以直接在列表中添加图像描述符或SWT图像。当在注册表中通过名字请求图像时,如果图像已经被创建,注册表将会返回它,否则会根据描述符创建一个图像。这使得注册表的用户可以共享图像不论是添加到注册表中的图像,还是从中取出的图像,都不能被任何客户销毁。由于这些图像被多个客户共享,注册表就必须负责销毁图像。当平台的GUI系统关闭,注册表将会销毁图像。

2.使用图像插件模式

(1)在plugin.xml中指定图像。只要有可能,就需要在plugin.xml文件中指明插件的用户界面对象的图标。许多工作台扩展点都包含图标文件的配置参数。通过在plugin.xml文件中的扩展添加项定义图标,就可以将图像管理交给台。因为图标一般放在插件目录中,这使得开发者可以在一个方指定图标和管理文件。

当不能在扩展添加项中指定图标时,就需要考虑采用其他的方法。

(2)显示创建。当图像不经常被使用并且不被共享,显示创建图像是最好的方式。图像可以直接在SWT中创建,并且在使用完图像后销毁该图像。

图像也可以通过使用ImageDescriptor和调用createImage()方法显式创建。在第一种情况下,图像的dispose()方法必须在图像不被使用时调用。例如,如果打开对话框时创建了图像,那么就应该在关闭对话框时销毁图像。

(3)图像注册表。当一个图像在插件中被频繁使用,并且被多个不同用户界面中的对象共享,向ImageRegistry注册图像描述符是很有用的。使用注册表的缺点在于只能在GUI系统关闭的时候才能销毁注册表中的图像。因为同时打开平台图像的数量是有限的,所以插件不能注册太多的图标。AbstractUIPlugin类包含创建插件的图像注册表的协议。

(4)标签提供器。当图标被频繁用来在特定查看器中显示元素,它就可以被多个查看器中相似的项共享,这些项需要使用标签提供器。因为标签提供器负责为查看器中的任何对象返回图像,所以它可以控制图像的创建以及查看器中的对象之间的图像共享。

标签提供器可以使用前面介绍的方法创建图像。如果在LabelProvider类的子类中浏览getImage()的不同实现,用户将会了解多种技术,包括缓存对象的单个图标和通过类型维持图像的表。通过标签提供器创建的图像必须在提供器的dispose()方法里进行销毁,这个方法会

在销毁查看器时被调用。

使用标签提供器是在显示创建和图像注册表之间的一个很好的折衷。它提倡图像共享(像

图像注册表一样),同时又控制图像的创建和销毁。

(5)插件的图像类。当精确调整一个插件时,会试用不同的图像创建模式。将有关图像

创建的决策放在一个单独的类中,并指定所有客户都可以使用该类获得图像,这样就可以调

整创建顺序以便反映插件的实际性能。

3.资源管理器

ResourceManager类用来维持ImageDescriptor与Image之间的映射,以便通过描述符使

用图像。当通过注册表里的描述符请求图像,如果图像已经被创建,注册表将会返回图像,

否则会根据描述符创建被请求的图像。这样做允许注册表的用户共享图像。

ResourceManager的最高层是DeviceResourceManager,它由Display创建。通过JFaceResources.getResource()定义的ResourceManager,即DeviceResourceManager,并且可以用来作为ResourceManager的顶层。如果需要一个生命周期较短的ResourceManager,可以创建LocalResourceManager实例。当对该实例的操作完成以后,就可以销毁它。

任何客户都不能销毁添加到管理器或从管理器取出的图像,管理器负责销毁图像。当ResourceManager被销毁时,注册表将会销毁图像。

4.字体注册表

字体是平台操作系统里的另一个受限制的资源。字体的创建和销毁问题与图像一样,要求速度和空间的折衷。一般情况下,SWT中的字体分配是通过使用依赖台的字体名请求某个字体来实现的。FontRegistry类使用字体名维持一张字体表,它负责管理字体的分配和释放。

通常,插件应该避免分配字体或使用特定平台的名字描述字体。尽管在JFace中使用字体注册表,但是一般并不在插件中使用。JFaceResources类应该用来使用常见的字体。

允许用户在首选项页面中指定应用程序的首选字体是很常见的。在这种情况下,FontFieldEditor应该

用来从用户获得字体的名字,FontRegistry可能用来保存字体。FontFieldEditor只在首选项页面中使用。

5.JFaceResources

JFaceResources类控制对常见的平台字体和图像的访问,它维持一个内部字体和图像注册表,以便客户可以共享已命名的字体和图像。在工作台和其他插件之间共享图像有许多技术可供参考。在工作台和插件代中,并没有广泛使用JFaceResources图像注册表。

字体的使用要简单得多。工作台和大多数插件使用JFaceResources类通过逻辑名请求字体。提供类似getDialogFont()和getDefaultFont()的方法以便插件可以在用户界面中使用它们所期望的字体。13.7JFace用户界面程序开发实例

本节将开发一个简单的文件资源管理器。通过这个例子,介绍如何在Eclipse中使用JFace开发用户界面程序。

首先,需要设置Chapter13项目的构建路径。打开项目性的窗口,在构建路径的“库”选项卡中添加下列几个包:

/plugins/org.eclipse.core.runtime_3.0.1/runtime.jar

/plugins/org.eclipse.ui.workbench_3.0.1

/plugins/org.eclipse.jface_3.0.0

/plugins/org.eclipse.osgi_3.0.1

然后在项目中创建一个包,包名为org.Chapter13。

13.7.1显示文件夹层次结构

本小节将创建一个用来显示文件夹层次结构的树查看器(TreeViewer)。根据前面的介绍,可以知道TreeViewer并不是真正的SWT窗口小部件,它并不打算隐藏SWT窗口小部件。它使用SWT树窗口小部件来显示各项,并且还使用其他对象来协完成这个工作。

TreeViewer需要知道显示的树的根元素,可以通过下面的方法告诉它:

voidsetInput(ObjectrootElement);

开始显示时,树查看器向根元素请求它的子元素并显示它们。当用户展开其中一个子元素时,树查看器又会向该节点发送请求。实际上,树查看器并不直接使用域对象,而是通过内容提供器(ContentProvider),如图13-11所示。

要创建内容提供器,必须实现ITreeContentProvider接口,需要实现6个方法(实例13-6

的注释中都有介绍)。在包org.Chapter13中创建FileTreeContentProvider类,并输入实例13-6

的代。

【实例13-6】FileTreeContentProvider类(FileTreeContentProvider.java)

packageorg.Chapter13;

importjava.io.*;

importorg.eclipse.jface.viewers.*;

/**

*FileTreeContentProvider用来帮显示文件夹的层次结构

*

*/

publicclassFileTreeContentProviderimplementsITreeContentProvider{

/**

*获得特定元素的子元素

*/

publicObject[]getChildren(Objectelement){

Object[]files=((File)element).listFiles();

returnfiles==null?newObject[0]:files;

}

/**

*请求根元素下的子元素

*/

publicObject[]getElements(Objectelement){

returngetChildren(element);

}

/**

*判断该节点是否有子元素

*/

publicbooleanhasChildren(Objectelement){

returngetChildren(element).length>0;

}

/**

*getParent()方法用来实现reveal(Objectelement),后者使树查看器显示树中的节点

*/

publicObjectgetParent(Objectelement){

return((File)element).getParent();

}

/**

*销毁函数

*/

publicvoiddispose(){

}

/**

*通知内容提供器,查看器的输入元素已经改变了

*/

publicvoidinputChanged(Viewerviewer,Objectold_input,Objectnew_input){

}

}

13.7.2实现标签提供器并显示文件夹内容

可以使用标签提供器来帮显示节点,需要实现getText(Objectelement)方法,以便该方

法只返回文件或文件夹的名字(不包含路径)。

在包org.Chapter13中新建FileTreeLabelProvider类,并输入下列代。

【实例13-7】FileTreeLabelProvider类(FileTreeLabelProvider.java)

packageorg.Chapter13;

importjava.io.*;

importorg.eclipse.jface.viewers.*;

/**

*FileTreeLabelProvider用来协显示节点。getText()只会返回文件夹或文件的文件名(不包含路径)*/

publicclassFileTreeLabelProviderextendsLabelProvider{

publicStringgetText(Objectelement){

return((File)element).getName();

}

}

现在还需要完成的一项工作就是在表查看器中显示树查看器中选中的文件或文件夹的文件列表。JFace提供了TableViewer,与TreeViewer一样,它也有输入元素、内容提供器和标签提供器。

ui用户界面设计课程设计报告

UI用户界面设计 大作业课程设计报告 题目:依依旅行系统前台应用及后台管理院别:信息与控制学院 专业:计算机科学与技术 学生姓名: 7宋依依 指导教师:孙丽云 成绩: 2015年 6 月 12 日 一、系统概述 1.1课程设计题目: 依依旅行系统前台及后台管理 1.2 课程设计运行环境: Java,MyEclipse6.5,Tomcat5.x Microsoft SQL Server 2008 360安全浏览器7.1 1.3 课程设计实现技术: 基于HTML,CSS,JSP等技术的应用 二、依依旅行系统需求分析 2.1系统功能需求:

系统的功能需求包括一下几个方面 (1)游客在不登录的情况下只可以进行相关旅行,车票,酒店信息的查询。(2)游客通过注册登录或者登录后,可以通过网络查询景点的信息概况和预定景点票,酒店,车票(飞机票,火车票,或者租车)。 (3)游客登录后还可以进行各种订单的退订,个人信息的修改。 (4)系统管理员可以查看游客的预定请求和取消预定的请求。 (5)系统管理员可以对系统的数据库进行维护,例如增加、删除和修改景点信息,增加、删除工作人员帐户,增加和删除旅行用户。 三、依依旅行系统概要分析 3.1旅游系统模块介绍 满足以上需求的管理系统主要包括以下几个模块。 (1)旅游数据维护模块 基本数据维护模块提供了使用者录入、修改并维护基本数据的途径。例如对游客及导游及工作人员各项信息的更新和修改。 (2)旅游业务模块 基本业务模块主要用于实现游客查询景点信息和预定的管理,可以登陆系统预定景点游票和导游预定,工作人员可以处理预定信息和取消预定信息等操作。 (3)数据库管理模块 在系统中,所有景点信息以及工作人员和导游的帐户信息都要进行统一管理,景点的使用情况和预定情况也要进行详细的记录,要用统一的数据库平台进行管理。 (4)旅游信息查询模块 信息查询模块主要用于查询景点的信息和游客的预定信息。 下图所示表示了旅游开发管理系统的功能需求: 3.2旅游数据维护模块 数据维护模块包括如下图所示的几个方面: (1)修改更新景点信息:系统管理员可以更新和修改景点信息。 (2)更新和修改信息:系统管理员可以更新和修改旅游景点和酒店出行,删除游客的信息。 (3)添加景点信息:系统管理员可以添加景点及景点信息。 (4)删除景点信息:系统管理员可以删除景点及景点信息。 3.3旅游业务模块 旅游业务模块包括一下几个方面: (1)注册登陆后,更改个人信息 (2)查询信息:游客查询景点使用信息及景点概括信息。 (3)预定取消景点:游客预定景点票。 (4)酒店预订:游客可一根据情况预定酒店。 (5)出行方式:游客可以根据自己的情况选择出行方式。 3.4数据库管理模块 数据库模块包括一下一个方面: (1)游客信息管理:信息包括游客的姓名,电话号码,及联系方式等。(2)景点信息管理:景点信息包括景点的名称,代号,概况等。

房地产信息和咨询服务发展

房地产信息和咨询服务 信息服务 >>数据系统 以GIS地理信息系统技术、Intelligent Search智能搜索、OLAP海量数据挖掘技术构建的中国房地产市场信息数据库,是中国最大的房地产信息数据库。以数据库为基础研发的中国房地产决策咨询系统,已实现对房地产信息(土地、住宅、商业、办公)及相关信息(规划、GIS地图)的即时查询、统计、分析,为企业提供全面、精准、快速的房地产信息服务平台。截止09年12月31日,中国房地产决策咨询系统已经覆盖全国75个房地产重点开发城市。 >>信息集成 依托中国最大的房地产数据库,通过定期研究分析报告、为客户个性化服务等运作方式,提供包括决策情报、竞品项目监测、专项市场监测、常规市场顾问、项目市场顾问、专项市场顾问等不同层次百余项服务内容。 决策情报 实时监控,整合全国、区域、城市的房地产各类资讯,涵盖政策、金融、土地、市场、企业、产品、营销动态,形成日、月、季、年度的全面信息网络。 竞品项目监测 通过对竞品项目的24小时全天监控,提供竞品的最新动态,预判其未来供应情况,通过房型、各面积段、各总价段等不同角度对项目的去化情况、供求走势等进行查询分析,直观了解关注项目之间的对比情况。 专项市场监测

针对商业、办公、写字楼、酒店、工业等不同细分产品及对经济务实、中产阶级(12级)、富裕家庭等不同细分客户进行专项市场监测服务。 常规市场顾问 跟踪全国及区域市场、典型企业、典型项目的市场表现,形成地产企业全方面的市场资讯数据库,为开发商提供以日、周、月、年为轴线的常规市场顾问信息服务。 项目市场顾问 为项目关键节点提供市场调研、产品定位及营销评估分析,为项目决策、物业发展建议、营销推广策略提供充分的市场依据。 专项市场顾问 为开发商提供经过全面整合的土地、产品、客户等地产关键因素的各类专项研究报告,通过把握市场总体需求为开发商精确制定产品研发及营销推广策略。 咨询服务 依托遍布全国的房地产决策咨询系统数据库、强大的知识管理平台、系统化的创新能力、对行业发展及城市发展的前瞻性和对客户/消费者不断变化需求的敏锐把握,秉承国际化视野、本土化城市经验、市场前沿成长型方法论的运作理念,携手咨询平台数百名专业高端咨询顾问,整合来自政府、行业协会、主流媒体、高校专家学者联盟、投行、金融机构的资源,为客户设计灵活运用的解决方案,并使之能够真正具有针对性和可实施性。 >>土地交易咨询 为客户推荐土地,或协助谈判、分析投资机会,帮助客户通过公开招标、拍卖或协议、合作开发等方式获取土地。服务内容包含:城市发展属性及经济状况评估、城市房地产市场发展趋势评估、周边项目及客户研究、地块核心价值评估及开发策略假想、地块开发策略及综合定位、财务评估及分析、取地策略评估、项目风险提示及开发建议析等。

网页设计大作业

网页设计与制作报告书 课程名称:网页设计与制作 报告题目:几米的空间 专业班级:旅管1002班 学号:100104110221 姓名:杨玉颖 指导教师:胡一波

目录 一、................................. 开发背景 二、................................. 网页设计技巧 三、................................. 网站结构 四、................................. 应用工具方案 五、................................. 频道栏目划分 六、................................. 测试 七、................................. 周期与成本估算 八、................................. 结论

摘要: 在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。 关键字:网页制作;制作方法;设计要素;网页测试

一、网页制作开发背景 Dreamweaver以其功能强大、容易上手、界面亲切而著称。它采用所见即所得的方式编辑网页,利用它可以轻松的组织、编辑网页并将其发布到指定的站点上,而且在发布之后还能对更新情况进行监控以更新站点的内容。现在流行的网页制作软件有很多,如Macromedia 公司的Dreamweaver、微软公司的Dreamweaver、还有Adobe Pagemill 3.0--制作多框架,表单和Image map 图像的网页工具、Netscape等等。其中Dreamweaver更以其功能强大、容易上手、界面亲切而著称。它采用所见即所得的方式编辑网页,利用它可以轻松的组织、编辑网页并将其发布到指定的站点上,而且在发布之后还能对更新情况进行监控以更新站点的内容。工具准备好了,可根据你的个人喜好来选择一些素材,如图片、喜欢的文章等。 二、网页制作设计技巧 首先,我们来看一下创建一个只包含一个网页的站点。选择“文件”菜单的“新建”选项,单击“站点”命令,这时新建站点对话框就弹出来了,在“指定新站点位置”文本框中输入新站点的位置,单击“只有一个网页的站点”图标,单击“确定”按钮。这就建立好站点了,我们现在来看一下新的站点里有什么,单击“视图”工具条的“文件夹”按钮。在文件夹列表里有一个网页文件,名字叫做“index.htm”。我们知道,每

房地产开发责任公司咨询项目建议书

房地产开发责任公司咨询 项目建议书 Newly compiled on November 23, 2020

鲁艺房地产开发有限责任公司 咨询项目建议书 北大纵横管理咨询公司 二零零一年六月十八日 声明 本项目建议书由北京北大纵横管理咨询公司为鲁艺公司制作,所有建议均非最终咨询建议。 文中涉及部分双方商业机密,仅供本次咨询项目招标使用,且仅供双方参与此次招标活动人员阅读。 未经双方同意,本项目建议书所有内容不得向第三方透露。 目录 项目背景 鲁艺房地产开发有限责任公司(以下简称“鲁艺房地产公司”)是一家成立于一九九四年三月的民营企业,主要从事房地产和文化交流。 公司自成立以来,在刘炽、凌子风等历任董事长及现任董事长杨元惺的领导下,秉乘中国文化之精神,致力于文化产业的开发和建设,在居住文化等方面,进行了长期不懈的探索和努力,取得了显着的社会效益,得到了社会各界的肯定。

作为一个具有浓厚文化底蕴的房地产专业化公司,公司董事会特邀国内着名职业经理人林少洲作为鲁艺公司总经理,全面负责市场的策划、经营和管理。 目前,公司正在全力以赴开发建设北京市重点工程项目之一的综合性文化设施项目----鲁迅文化园。在业务拓展的关键时期,公司迫切需要建立健全规章制度,规范各项工作流程,引进人力资源管理,加大考核力度,上升管理层次,为企业的长远发展创造条件。 此次咨询项目工作成果既要符合鲁艺房地产开发有限责任公司最高层领导的意志,又要结合鲁艺房地产开发有限责任公司公司的具体特点,同时符合现代企业制度和有关法律、法规要求,并具有可操作性。 北大纵横管理咨询公司作为业内享有盛名的专业管理咨询公司,在帮助企业规范管理、制定人力资源制度方面有着丰富的经验,公司各主要咨询师均有不同行业背景,有丰富的咨询和操作经验。针对鲁艺房地产开发有限责任公司的实际情况,北大纵横管理咨询公司能够为鲁艺房地产开发有限责任公司的管理改进提供必要的协助,为鲁艺房地产开发有限责任公司的长期稳定的发展提供实效性的解决方案。 关键问题 根据我们以往对各类企业的咨询经验,鲁艺公司可能存在以下问题:组织机构设置不合理,分工不明确。一个经营过程往往要经过若干个部门、环节的协调处理。如果机构设置责权不明晰或权责不对等,一方面容易出现责任真空,从而产生工作互相推委的现象,另一方面,可能则可能出现有令不行,监督不利的情况,造成企业高效运转的障碍。 无人负责整个经营过程,缺乏用户至上的意识。各部门都是按专业职能划分,每个部门尤如“铁路警察",各管一段,结果是各部门只关心本部门的工作,并以达到上级满意为准。“用户就是上帝"那只是营销人员的信条,企业的其它员工,并不关心生产的产品或提供的服务是否能真正满足用户的需求;

VB程序设计(2015大作业)

《VB程序设计》大作业 一、大作业的内容 本次大作业要求学生根据所学知识以及个人爱好,设计开发一个VB应用小程序。要能体现出: 1.《VB程序设计》各种语句的综合使用能力; 2.《VB程序设计》各种相关控件的使用能力; 3.根据具体的设计题目,设计清晰、美观界面的能力; 4.一定的综合设计能力。 二、大作业的要求 本次大作业应满足以下要求: 实用性:应用程序要有明确的应用主题,有一定的实用价值。 结构性:应用程序具有良好的程序结构。 可读性:应用程序具有较好的可读性。 全面性:应用程序应包含比较全面的功能。 友好性:合理使用VB提供的各种控件,设计友好、美观的使用界面。 三、大作业的步骤 1.根据个人兴趣、爱好,以及提交时间的要求,自己确定设计题目(可参考附件1); 2.查找与设计题目相关的资料; 3.进行应用程序总体结构、使用功能的设计; 4.进行应用程序的界面设计和源程序代码的编写; 5.上机编辑、调试程序; 6.保存应用程序, 并生成可执行文件; 7.撰写设计报告。 四、设计报告的基本格式 设计报告的基本内容至少包括封面、正文、总结三部分。 (1).封面(包括:题目、班级、姓名、指导教师、完成日期等信息) (2).正文 1、课题的选材过程(设计思路); 2、设计的将要达到的目标; 3、总体设计结构与功能; (1)总体设计结构介绍(绘制:结构流程图) (2)各功能模块运行界面的功能、算法和操作步骤; 4、设计结果分析;(运行结果展示、正确性分析) (3).总结(感想、收获、启发、存在的问题) 五、课程大作业提交 (1)形式设计报告+ 源程序文件(含可执行文件) 其中:<1>设计报告的封面统一(附件2); <2>源程序文件(含*.vbp;*.frm;*.exe)打包压缩成一个文件, 以学号+姓名(例如:12020741姓名)为文件名。 (2)时间2015年6月1日之前; (3)方法纸质报告及压缩文件交各班学委,按顺序排好后由学委统一上交;

(企业管理咨询)房地产开发有限责任公司咨询项目建议书

精品资料网(https://www.wendangku.net/doc/ac4804824.html,) 25万份精华管理资料,2万多集管理视频讲座 XX房地产开发有限责任公司 咨询项目建议书 北大纵横管理咨询公司 二零零一年六月十八日 精品资料网(https://www.wendangku.net/doc/ac4804824.html,)专业提供企管培训资料

声明 本项目建议书由北京北大纵横管理咨询公司为XX公司制作,所有建议均非最终咨询建议。 文中涉及部分双方商业机密,仅供本次咨询项目招标使用,且仅供双方参与此次招标活动人员阅读。 未经双方同意,本项目建议书所有内容不得向第三方透露。 目录

项目背景 (4) 关键问题 (5) 工作原则 (7) 咨询价值观 (8) 工作计划 (9) 项目实施计划 (20) 项目组织 (22) 项目成员咨询背景 (23) 咨询费用 (25) 附件一北大纵横咨询经验 (27) 附件二北大纵横八大优势 (29) 附录三北大纵横概况 (30) 附录四公司营业执照 (38)

项目背景 XX房地产开发有限责任公司(以下简称“XX房地产公司”)是一家成立于一九九四年三月的民营企业,主要从事房地产和文化交流。 公司自成立以来,在刘炽、凌子风等历任董事长及现任董事长杨元惺的领导下,秉乘中国文化之精神,致力于文化产业的开发和建设,在居住文化等方面,进行了长期不懈的探索和努力,取得了显著的社会效益,得到了社会各界的肯定。 作为一个具有浓厚文化底蕴的房地产专业化公司,公司董事会特邀国内著名职业经理人林少洲作为XX公司总经理,全面负责市场的策划、经营和管理。 目前,公司正在全力以赴开发建设北京市重点工程项目之一的综合性文化设施项目----鲁迅文化园。在业务拓展的关键时期,公司迫切需要建立健全规章制度,规范各项工作流程,引进人力资源管理,加大考核力度,上升管理层次,为企业的长远发展创造条件。 此次咨询项目工作成果既要符合XX房地产开发有限责任公司最高层领导的意志,又要结合XX房地产开发有限责任

软件工程大作业.

软件工程大作业 题目:学生档案管理系统 小组成员:戚盈洁( 王大伟( 王磊( 霍成海( 目录 第一章. 系统调查 (3 1.1系统调查内容 (3 1.2系统调查方法 (3 第二章. 系统分析 (3 2.1 系统分析 (3 2.2 系统调结构图 (4 2.3 子系统功能描述 (4 第三章. 系统设计 (6 3.1 界面设计原则 (6 3.2 数据库设计 (6 3.3 代码设计 (10 第四章. 学生照片管理模块设计 (14

4.1 ImageFunc模块 (14 4.2 设计照片管理窗体 (16 4.3 在学生信息管理窗体中添加照片管理代码 (17 第五章. 系统测试 (18 5.1 系统测试项目 (18 5.2 系统评估 (20 第一章. 系统调查 1.1系统调查内容 学校各院系基本概况:院系名称,专业设置,课程设置,课时安排,学生人数,学生班级数等。 学校资源条件调查,包括计算机配备,网络支持条件等。 各院系专业设置概况:现有开设专业及规划中开设专业设置,专业开设课程,各课程授课教师与成绩处理。 学校各部门(学生处、教务处、档案管理室、各院系对学生基本情况的需求与掌握,对学生基本信息的处理方式与业务流程。 学校各部门、单位、教师、学生对系统的其他要求和希望。 1.2系统调查方法 通过对部分高校学生档案管理人员的访问,了解到目前大部分高校的档案管理工作存在工作效率低,成本高,保密性差,查询困难等问题。大部分工作人员都提出需要一个具有检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本

低等优点的现代化信息管理系统。为解决此问题我们决定开发一个既方便又操作简单,功能较为齐全的学生档案管理系统。 第二章. 系统分析 2.1 系统分析 1 系统开发的总体任务是学生档案管理的系统化和规范化。 2 系统开发的目标是使档案管理工作科学化和规范化,提高安全系数。 3 系统功能树本系统主要功能是实现学生基本情况的管理。 图3.1学生档案管理系统功能模块 2.2 系统调结构图

房地产开发有限责任公司咨询项目建议书

房地产开发有限责任公司 咨询项目建议书 Written by Peter at 2021 in January

【最新资料,Word版,可自由编辑!】

声明 本项目建议书由北京北大纵横管理咨询公司为鲁艺公司制作,所有建议均非最终咨询建议。 文中涉及部分双方商业机密,仅供本次咨询项目招标使用,且仅供双方参与此次招标活动人员阅读。 未经双方同意,本项目建议书所有内容不得向第三方透露。 目录 项目背景 鲁艺房地产开发有限责任公司(以下简称“鲁艺房地产公司”)是一家成立于一九九四年三月的民营企业,主要从事房地产和文化交流。 公司自成立以来,在刘炽、凌子风等历任董事长及现任董事长杨元惺的领导下,秉乘中国文化之精神,致力于文化产业的开发和建设,在居住文化等方面,进行了长期不懈的探索和努力,取得了显着的社会效益,得到了社会各界的肯定。 作为一个具有浓厚文化底蕴的房地产专业化公司,公司董事会特邀国内着名职业经理人林少洲作为鲁艺公司总经理,全面负责市场的策划、经营和管理。 目前,公司正在全力以赴开发建设北京市重点工程项目之一的综合性文化设施项目----鲁迅文化园。在业务拓展的关键时期,公司迫切需要建立健全规

章制度,规范各项工作流程,引进人力资源管理,加大考核力度,上升管理层次,为企业的长远发展创造条件。 此次咨询项目工作成果既要符合鲁艺房地产开发有限责任公司最高层领导的意志,又要结合鲁艺房地产开发有限责任公司公司的具体特点,同时符合现代企业制度和有关法律、法规要求,并具有可操作性。 北大纵横管理咨询公司作为业内享有盛名的专业管理咨询公司,在帮助企 业规范管理、制定人力资源制度方面有着丰富的经验,公司各主要咨询师均有不同行业背景,有丰富的咨询和操作经验。针对鲁艺房地产开发有限责任公司的实际情况,北大纵横管理咨询公司能够为鲁艺房地产开发有限责任公司的管理改进提供必要的协助,为鲁艺房地产开发有限责任公司的长期稳定的发展提供实效性的解决方案。 关键问题 根据我们以往对各类企业的咨询经验,鲁艺公司可能存在以下问题: 组织机构设置不合理,分工不明确。一个经营过程往往要经过若干个部门、环节的协调处理。如果机构设置责权不明晰或权责不对等,一方面容易出现责任真空,从而产生工作互相推委的现象,另一方面,可能则可能出现有令不行,监督不利的情况,造成企业高效运转的障碍。 无人负责整个经营过程,缺乏用户至上的意识。各部门都是按专业职能划分,每个部门尤如“铁路警察",各管一段,结果是各部门只关心本部门的工作,并以达到上级满意为准。“用户就是上帝"那只是营销人员的信条,企业的其它员工,并不关心生产的产品或提供的服务是否能真正满足用户的需求; 分配机制不合理。干好干坏都一样,存在“大锅饭”现象,由于激励机制不科学,对关键人才对关键岗位的激励作用不强,从而导致员工工作满意度不高,工作积极性差,人心涣散的现象; 企业文化缺乏有效性。目前尚没有形成自己的核心价值观,员工价值观念跟不上企业发展的步伐,员工工作缺乏主动性,同时企业文化不能有效指导鲁

用户界面设计实例

用户界面设计实例 ● 设计的系统名称:个人日常事务管理系统 ● 针对用户群是:广大电脑用户(有一定的电脑操作基础),officer 和广大学 生。 一、系统需求分析(The system requirement ) 针对officer 和学生们的需求分析,从我自身分析:对于我日常的安排我平 时会用专门的记事本记录和更改,对于日常各种事务可能会冲突或不变携带,现在针对这些需求,设计出符合此人群适合的一款系统来帮助人们更好的安排日程和完成工作。此系统是要面向个人的,同企业系统相比,此软件要力求操作简单,效率要高效,由于针对的人群是officer 和大学生,这些人都是年轻的一代人,对计算机和系统都比较了解,而且倾向于华丽的界面,但是该系统同时要解决高效,较少的操作较快地达到用户的需求。由于工作原因或计算机系统崩溃等用户在本机保存的日程安排等数据可能丢失的情况,同时,有些情况下可能无法连接网络,此系统应支持 1.、本机数据保存。2、可以上传到服务器数据库,用户注册可获得免费的空间,用户注册后,只要登录就能在随时随地获得自己的日程安排等信息。 二、系统功能定义(The function definitions ) 个人日程管理系统主要是提供个人时间日程安排系统软件,它具有相当方便的操作接口,让用户能够对所安排的行程一目了然,除去主要功能还附带了更多功能和小工具,安排的行程可以生成通行路线,并会根据天气预报提醒当天安排是否影响。而且用户可以注册,注册后用户有更多的服务,安排的日程数据可以保存到本地同时可以更新到服务器,这样用户就算到外地也可以随时查看自己的日程安排,同时其他功能有:时钟提醒、通讯录、效率评估等。 实现功能(主界面导航): 个人日常事 务管理系统

房地产开发有限公司战略咨询

顺鑫佳宇房地产开发有限公司战略 咨询项目建议书 北京理工大学房地产研究工作室 二零零八年九月十七日

声明 本项目建议书由北京理工大学房地产研究工作室制作,所有建议均非最终咨询建议。

目录 项目背景 (3) 关键问题 (4) 工作原则 (4) 项目目标 (4) 分析思路和方法 (5) 预期交付成果 (7) 战略制定工作计划 (7)

一、项目背景 顺鑫佳宇房地产开发有限公司是顺鑫农业股份有限公司下属全资房地产开发经营企业,是顺鑫农业在白酒、食品、物流配送、房地产开发和饮料五大产业集团之一。顺鑫佳宇是以房地产开发为核心业务,以物业管理、房地产经纪、绿化公司为辅助业务的专业化房地产集团。 顺鑫佳宇于2002年注册成立,2004年正式运营,公司自成立以来,经过短短四年的历程,业务发展已经横跨住宅、写字楼、商场(shopping mall)、soho 等多种业态;业务模式也趋向多元化。在房地产开发方面,进行了不懈的探索和努力,取得了显著的社会和经济效益,得到了社会各界的肯定。 在市场竞争激烈,房地产业务拓展的关键时期,如何把握战略方向,使企业在持续高速发展的道路并保证企业发展不偏离这个道路成为高层必须面对的问题。顺鑫佳宇目前正处在创业阶段向持续增长阶段的转变时期,如何把握发展方向,保证公司向长远目标前进,是目前的顺鑫佳宇高层管理团队必须清晰理解的首要问题。公司迫切需要准确定位,对未来发展明确方向,确立长远发展规划,为企业更稳健、更有效的发展创造条件。 2008年9月8日,我们拜访了顺鑫佳宇房地产开发有限公司,与公司领导进行了愉快的沟通,并对已开发和在开发项目进行了实地的踏勘,从而对顺鑫佳宇的基本情况有了初步的了解。 本项目建议书基于双方讨论的战略议题和管理关键点提出的,只是初步假设,我们期待能与顺鑫佳宇房地产开发有限公司就本咨询项目进行更深入的讨论。 此次咨询项目工作成果既要符合顺鑫佳宇房地产开发有限公司最高层领导的意志,又要结合顺鑫佳宇房地产开发有限公司的具体特点,同时符合有关法律、法规要求,并具有可操作性。

房地产开发成本控制咨询服务框架

房地产开发成本控制咨询服务框架 一、为公司建立成本管理体系提供咨询服务。 二、为公司测算目标成本提供咨询服务。 三、为公司采取成本控制措施提供咨询服务。 四、对公司成本控制绩效进行分析评价。 五、以上咨询服务仅限于双方议定的开发项目。 六、公司应提供与上述服务有关的资料,并在工作中积极配合。 七、服务方对公司提供的资料负有保密义务。 附:房地产开发成本项目一览表 房地产开发成本项 目一览表 2.规划设计费 2.1规划方案设计费 2.2规划技术服务费 2.3扩初设计费 2.4施工图设计费 2.5园林景观设计费 2.6管线设计费 2.7图纸审查费

2.8制图晒图费 2.9规划设计模型制作费 2.10防雷设计图纸审核费 2.11地震安全性评价费 2.12消防安全评价费 2.13电器设施消防安全检测费2.14建筑自动消防系统检测费 2.15造价咨询服务费 3.报批报建费 3.1建设用地规划许可证申领费3.2建设工程规划许可证申领费3.3建设项目选址意见书申领费3.4城市基础设施配套费 3.5人防工程易地建设费 3.6新型墙体材料基金 3.7散装水泥专项资金 3.8氡气检测费 3.9城建档案费 3.10环评费 3.11节能评估费 3.12规划验放线费 3.13规划咨询费

3.14规划报审服务费 4. 临时设施费 4.1场地平整费 4.2临时道路费 4.3临时用水费 4.4临时用电费 4.5围墙费 4.6临时办公场所费 5.招投标费用 5.1招标代理费 5.2标书编审费 5.3合同咨询费 排污费 招投标代理费 消防设施费 消防方案报审 招标交易费 日照分析 地形图(1:500) 灯光夜景效果图 两金

app用户界面设计大作业

教学站:杭州前进学号:201812925310039 姓名:詹浩裕 医护app用户界面设计说明书 修订历史记录

目录 1 引言................................................... - 2 - 1.1编写目的............................................ - 2 - 1.2项目背景............................................ - 2 - 1.3主要功能 (2) 2 应当遵循的界面设计规范 ................................. - 3 - 2.1用户界面设计原则.................................... - 3 - 2.2界面一致性 (4) 2.3布局合理化原则.......................... 错误!未定义书签。 3 引导页..................................... 错误!未定义书签。 4 主界面................................................. - 5 - 4.1主界面.............................................. - 6 - 4.2登录页面................................ 错误!未定义书签。 4.3各子界面 (7) 5 美学设计 (10) 6 界面资源设计 (10) 6.1图标资源 (10) 7 投诉与建议 (11) - 1 -

Java大作业设计报告

《Java程序设计》大作业设 计报告 设计名称多人聊天室 组员姓名 学生班级 设计时间 2013.12.15 设计成绩

一、问题描述及设计思路 设计多人聊天程序,能进行多人实时聊天,其中服务器为PC端,客户端为安卓端。 在服务器上,不断监听来自客户端的接入请求,对于接入的客户端加入线程池,同时为之开启独立线程,等待从该客户端发来的信息,再转发给其他客户端。 在客户端上,首先布局简单的安卓界面,开启客户端并且登录后,设置button 按钮监听想服务器发送信息请求,同时开启独立线程接收来自服务器的信息(即来自其他客户端的信息)。 二、详细设计过程 服务器开发 1.首先,导入了我们完成服务器端所要完成的各种类: 能,辅助以GUI界面进行美化。 2.在Server类里面的私有成员函数里,有以下定义: 程运行做准备, 同时创建了一个广义的ArrayListvector,用来存放客户端的套接字。创建了两个file类的文件,分别用于记录客户端的链接信息和保存客户端的聊天记录。

一个独立的线程,互不干扰。接下来则是采用GUI组件进行简单的界面设计,在try-catch块里完成主要功能。 首先,采用ServerSocket serverSocket = new ServerSocket(port);建立套接字,一旦建立成功,则在服务器端的界面上会出现创建的日期信息。又使用Socket socket = serverSocket.accept();连接客户端,采用while语句不断监听客户端连接,收到请求后,则在服务器端显示客户端的信息,如连接到服务器的时间,客户端的主机名称和IP地址,这些信息会被写进txt文本进行保存。 mExecutorService.execute(new Thread (newHandleAClient(socket)));则是向线程池中添加线程,这里使用了一个内部类HandleAClient用于处理服务器和单独一个客户端之间的问题。请看下面的继续解析。 4.采用一个内部类HandAClient完成一个客户端和服务器之前互相传输信息的

房地产项目咨询合同

房地产项目咨询合同 目前房地产市场走势不明朗,房地产开发决策难度增大,房地产开发项目可行性咨询的作用凸显。签订房地产项目咨询合同下雨注意什么呢?以下是小编为大家整理的房地产项目咨询合同范文,欢迎参考阅读。 房地产项目咨询合同范文1 委托方(甲方): 服务方(乙方): 甲方委托乙方承担“xxx地块项目”(暂定名称)规划设计顾问咨询服务工作,经协商一致,签订该项目规划设计和项目、企业品牌建立发展战略的顾问咨询服务合同(以下简称“本合同”)。甲、乙双方同意进行密切配合,并按照合同规定,履行各自的责任。 一、项目规模:

本项目总占地面积:约亩; 二、服务边界: 在合同有效期内,乙方应对甲方本项目的规划设计给予专业顾问咨询的支持,具体工作内容如下: 1、对本项目项目用地概念性规划暨总图设计全程顾问 咨询:⑴对项目规划设计的定位提出专业意见; ⑵对项目规划设计的总体布局提出专业意见; ⑶对项目规划设计的功能分布及空间布置提出专业意见; ⑷对项目规划设计的各项经济指标及户型配比提出专 业意见;⑸对项目规划设计的配套设施规划的合理、完整性 提出专业意见;⑹对项目规划设计的建筑风格提出专业意见; ⑺对项目规划设计的住宅及商业规划提出专业意见; ⑻对项目规划设计的园林规划提出专业意见;

⑼对项目规划设计的路网布局提出专业意见; ⑽对项目规划设计的目前及未来市场风险规避、后续项目发展提出专业意见; 2、项目用地的建筑方案设计全程顾问咨询服务: ⑴对项目规划设计的各项经济指标提出专业意见; ⑵对每期项目建筑方案的建筑形式、建筑单体外立面的造型、色彩组合、使用材质等提出专业意见; ⑶对每期项目建筑方案的户型配比及户型设计提出专业意见; ⑷对每期项目建筑方案的商业规划细化提出专业意见; ⑸对每期项目建筑方案的环境景观设计提出专业意见; ⑹对每期项目规划设计的路网布置提出专业意见;

系统分析与设计课程设计大作业

2014-2015学年第1学期《系统分析与设计》课程设计 项目名称:学生书籍管理系统 指导教师:李倩 班级:14软工软设1班 姓名:张浩

《系统分析与设计》课程设计——南阳理工学院学生学籍管理系统 目录 一绪论 (1) 1系统简介 (1) 2设计目的 (1) 3设计内容 (1) 二需求分析 (1) 1. 系统目标 (1) 信息系统目标 (1) 目标说明 (1) 2 系统结构 (2) 信息系统需求结构 (2) 需求结构的说明 (2) 3 功能用例模型 (2) 4 系统性能需求 (5) 三系统分析 (5) 1 创建类图的步骤 (5) 2 系统类图 (5) 3 序列图和协作图 (7) 4 活动图 (11) 四系统设计 (14) 1 逻辑体系结构设计 (14) 2 系统数据库设计 (14) 概念模型设计 (14) 逻辑模型设计 (14) 3.系统流程图 (16) 五数据库的概念结构设计 (17) 六数据库逻辑结构设计 (18) 七输入输出设计 (20) 八系统界面设计 (21) 九总结 (22) 十小组分工 (23)

一绪论 1系统简介 学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。 2设计目的 学生信息管理系统是高校管理信息系统的重要组成部分,开发或及时升级学生信息管理系统,是提高管理水平和工作效率的必然要求。本设计是对该学生信息管理系统的一个总体的把握,以便在后续的进一步开发过程中更好的控制总体进度,系统主要面向的对象是在校的学生。 3设计内容 本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,针对这些要求设计了学生管理信息系统。本设计主要解决与学生信息管理相关的问题,设计一个功能齐全的学生管理信息系统,实现学生档案信息的增删查改以及学生选课及课程的增删查改、学生成绩的录入和对学生成绩的分析等主要功能。 二需求分析 1. 系统目标 信息系统目标 分析设计并开发实现完善的学生信息管理系统,实现学生信息管理的系统化、规范化和自动化,提高管理水平和工作效率。 目标说明 完成系统目标,功能上尽量完善,性能上要求能够完全适应日常运营管理需求。

房地产开发公司经营范围

房地产开发公司经营范围[参考节选]: 房地产开发,建造、销售、出租和管理自建商品房及配套设施;房地产信息咨询(中介除外);自有房产的物业管理;接受委托提供劳务服务;家务劳务服务;出租办公用房、商业用房;机动车公共停车场服务;新技术及产品项目投资;资产管理;组织文化交流活动;承办展览展示;会议服务;企业形象策划;饭店管理;餐饮管理;批发和零售贸易(国家专营专控商品除外);销售交电、化工产品、百货、工艺美术品、建筑材料、机械电气设备安装;货物进出口、技术进出口、代理进出口;园林绿化服务;家居装饰服务。技术开发;技术培训;技术服务;技术咨询;健身服务;打字;复印;[经营范围以工商局最终核定为准] 合同管理制度 1 范围 本标准规定了龙腾公司合同管理工作的管理机构、职责、合同的授权委托、洽谈、承办、会签、订阅、履行和变更、终止及争议处理和合同管理的处罚、奖励; 本标准适用于龙腾公司项目建设期间的各类合同管理工作,厂内各类合同的管理,厂内所属各具法人资格的部门,参照本标准执行。 2 规范性引用 《中华人民共和国合同法》 《龙腾公司合同管理办法》 3 定义、符号、缩略语 无 4 职责 4.1 总经理:龙腾公司经营管理的法定代表人。负责对厂内各类合同管理工作实行统一领导。以法人代表名义或授权委托他人签订各类合法合同,并对电厂负责。 4.2 工程部:是发电厂建设施工安装等工程合同签订管理部门;负责签订管理基建、安装、人工技术的工程合同。 4.3 经营部:是合同签订管理部门,负责管理设备、材料、物资的订购合同。 4.5 合同管理部门履行以下职责: 4.5.1 建立健全合同管理办法并逐步完善规范; 4.5.2 参与合同的洽谈、起草、审查、签约、变更、解除以及合同的签证、公证、调解、诉讼等活动,全程跟踪和检查合同的履行质量; 4.5.3 审查、登记合同对方单位代表资格及单位资质,包括营业执照、经营范围、技术装备、信誉、越区域经营许可等证件及履约能力(必要时要求对方提供担保),检查合同的履行情况;4.5.4 保管法人代表授权委托书、合同专用章,并按编号归口使用;

房地产开发与经营的区别

房地产开发与经营的区别 房地产开发是对城镇进行土地和房屋的建设开发。从广义上讲,房地产开发是以城镇土地资源为对象,按照预定目的,进行改造加工,对地上进行房屋设施的建筑安装活动,以及为此而进行的规划、设计、经营管理活动的全过程。狭义的房地产开发是按照预定的目的而进行的改造土地和建造房屋设施的经营管理活动过程。 房地产经营也有广义和狭义之分,广义上讲,它是房地产企业对经营目标进行科学决策,并使确定的目标得到实现的全部管理活动的总和,它包括房地产的投资、开发、出售、出租、维修、服务等全部综合管理职能活动。狭义上讲,房地产经营主要是指有关房地产产品供销的管理活动,其中尤其着重于销售活动。上述房地产开发与房地产经营两个概念一般都是从狭义的角度解释。 根据划分标准的不同,房地产开发具有多种形式。 1、根据房地产开发内容的不同,可以分为以上三种形式: (1)综合开发。是指从规划设计、征地拆迁、土地开发、房屋建设、竣工验收,直到建城商品房进行销售、交付使用的整个过程。这是开发公司科学地组织开发建设、经营管理、服务的一项系统工程。 (2)土地开发。是指只办理征地拆迁和劳动力安置,搞好水通、电通、路通及土地平整的“三通一平“的全过程。它与综合开发的区别在于,土地开发不包括房屋建设的过程,一般是土地开发以后,按照当时的市场价格,通过拍卖、招标的方式,把已开发的土地转让给有关单位进行房屋建设,并按规定收取土地开发费。 (3)房屋开发。是在土地开发的基础上,获得土地使用权后,按照城市规划的要求,组织房屋设计、施工建设、竣工验收、出售、租赁等经营的全过程。 2、根据房地产开发承担方式的不同,又可分为以下三种形式: (1)独自开发。即房地产开发公司自己负责从本项工程的可行性研究、征地拆迁直到房屋建成经营的全过程。 (2)委托开发。即房地产开发公司接受用户或投资单位的委托,根据已划定的征地红线,进行规划设计,拆迁安置,组织施工,直到建成后交付委托单位。开发公司按规定收取开发管理费或承包费。 (3)分包开发。即房地产开发公司接受某项开发工程后,根据公司自身的能力和工程项目的性质、工程量的大小,将该工程分包给有关专业工程公司。 3、根据房地产开发阶段的不同,可分为以下三种形式:

房地产开发流程详细

房地产开发流程详细 10-06-22 房地产开发项目的立项和可行性研究阶段的法律程序 1、选定项目,签定合作意向书 2、初步确定开发方案 3、申报规划要点 4、申报、审批项目建议书 5、编制项目可行性研究报告 6、申报、审批项目可行性研究报告 房地产开发项目立项和可行性研究阶段的相关税费 1、可行性研究费 2、建设工程规划许可证执照费 第三步房地产开发项目的规划设计和市政配套 房地产开发项目规划设计和市政配套阶段的法律程序 一、房地产开发项目的规划设计 1、申报选址定点 2、申报规划设计条件 3、委托作出规划设计方案 4、办理人防审核

5、办理消防审核 6、审定规划设计方案 7、住宅设计方案的专家组审查 8、落实环保“三废”治理方案 9、委托环境影响评价并报批 10、建设工程勘察招、投标 11、委托地质勘探 12、委托初步设计 13、申报、审定初步设计 二、房地产开发项目的市政配套 14、征求主管部门审查意见 15、落实市政公用设施配套方案 16、报审市政配套方案 17、市政各管理部门提出市政配套意见 18、市政管线综合 房地产开发项目规划设计和市政配套阶段的相关税费 1、工程勘察(测量)费 2、工程设计费

3、建设工程规划许可证执照费 4、竣工档案保证金 5、临时用地费 6、临时建设工程费 7、建设工程勘察招标管理费 8、勘察设计监督管理费 9、古建园林工程设计费 第四步房地产开发项目土地使用权的取得取得房地产开发项目土地使用权的法律程序 一、国有土地使用权的出让 1、办理建设用地规划许可证 2、办理建设用地委托钉桩 3、办理国有土地使用权出让申请 4、主管部门实地勘察 5、土地估价报告的预审 6、委托地价评估 7、办理核定地价手续 8、办理土地出让审批

北京理工大学2020年10月《388用户界面设计大作业》期末离线考试答案1

《用户界面设计》大作业要求 设计一款手机app或桌面app的用户界面,撰写“用户界面设计说明书”。 具体要求如下: 通用规则 1. 撰写认真: 文档应具有统一性(所有内容都指向同一个清晰的主题)、一致性(所有内容的组织清晰合理,符合逻辑)和支持性(有具体的细节或案例)。没有各种文字错误。 2. 正确的格式化: 使用标题、列表、留白等机制,让文档适宜阅读。 关于用户界面设计说明书 是否/如何回答了以下问题? ●项目是什么? ●项目的来源或背景? ●项目的技术细节,比如开发平台、运行平台等? ●是否符合专业文档撰写规范? ●是否包括了以下内容: ?界面设计原则 ?app工作流程图 ?界面设计规范(design specification):至少包括颜色设计、字体设计、图像设计、 布局设计等方案,需包含主要界面的详细设计图。 避免抄袭现象:如果发现抄袭或雷同,成绩不及格。

IOS的易车App页面设 计 用户界面设计说明书 XXX 2020/10/01

修订历史记录

目录 第1章 APP概论 (3) 1.1编写目的 (3) 1.2项目背景 (3) 1.3定义、缩略词 (4) 1.4理念概述 (4) 第2章 APP软件分析 (5) 2.1 总体需求 (5) 2.2 详细需求 (5) 2.2.1 设计的目的 (5) 2.2.2 可行性分析 (5) 2.2.3 需求分析 (6) 2.2.4 方法和技术 (6) 第3章 APP页面设计 (9) 3.1 硬件结构规划与设计 (9) 3.2功能模块概括 (9) 3.3 软件功能架构 (12) 3.4 软件的体系结构 (12) 第4章 APP页面展现 (14) 4.1 引导界面 (14) 引导界面如图4-1所示: (14) 4.2 头条界面 (14) 头条界面如图4-2所示: (14) 4.3 选车界面 (15) 选车界面如图4-3所示: (15)

房地产开发有限责任公司咨询项目建议书

房地产开发有限责任公司咨询项目建议书

目录 项目背景 (3) 关键问题 (4) 工作原则 (5) 咨询价值观 (5) 工作计划 (6) 项目实施计划 (14) 项目组织 (15) 项目成员咨询背景 (16) 咨询费用 (17) 附件一北大纵横咨询经验 (18) 附件二北大纵横八大优势 (20) 附录三北大纵横概况 (21) 附录四公司营业执照 (26)

项目背景 鲁艺房地产开发有限责任公司(以下简称“鲁艺房地产公司”)是一家成立于一九九四年三月的民营企业,主要从事房地产和文化交流。 公司自成立以来,在刘炽、凌子风等历任董事长及现任董事长杨元惺的领导下,秉乘中国文化之精神,致力于文化产业的开发和建设,在居住文化等方面,进行了长期不懈的探索和努力,取得了显著的社会效益,得到了社会各界的肯定。 作为一个具有浓厚文化底蕴的房地产专业化公司,公司董事会特邀国内著名职业经理人林少洲作为鲁艺公司总经理,全面负责市场的策划、经营和管理。 目前,公司正在全力以赴开发建设北京市重点工程项目之一的综合性文化设施项目----鲁迅文化园。在业务拓展的关键时期,公司迫切需要建立健全规章制度,规范各项工作流程,引进人力资源管理,加大考核力度,上升管理层次,为企业的长远发展创造条件。 此次咨询项目工作成果既要符合鲁艺房地产开发有限责任公司最高层领导的意志,又要结合鲁艺房地产开发有限责任公司公司的具体特点,同时符合现代企业制度和有关法律、法规要求,并具有可操作性。 北大纵横管理咨询公司作为业内享有盛名的专业管理咨询公司,在帮助企业规范管理、制定人力资源制度方面有着丰富的经验,公司各主要咨询师均有不同行业背景,有丰富的咨询和操作经验。针对鲁艺房地产开发有限责任公司的实际情况,北大纵横管理咨询公司能够为鲁艺房地产开发有限责任公司的管理改进提供必要的协助,为鲁艺房地产开发有限责任公司的长期稳定的发展提供实效性的解决方案。

相关文档
相关文档 最新文档