`
strgo
  • 浏览: 2202 次
  • 性别: Icon_minigender_1
  • 来自: 夜
最近访客 更多访客>>
社区版块
存档分类
最新评论

[十分着急]EXT-GWT中TREE的拖拽如何实现?

 
阅读更多

目前本人正在着手一个ext_gwt的项目,遇到一个问题,在此请假大家,希望得到大家的帮助,感谢!

 

以下注意:

1.是EXT-GWT,也就是说是这个JAR包com.extjs.gxt,切记。

2.是对树结构往其他地方的拖拽,而不是对图片文本之类的拖拽

 

以下提供部分代码:

VtsTaskModel.java

 

package com.lingran.vts.client.model;

import java.util.ArrayList;
import java.util.List;

import com.extjs.gxt.ui.client.data.BaseTreeModel;
import com.extjs.gxt.ui.client.data.TreeModel;
import com.lingran.vts.client.pages.OverviewPage;
import com.lingran.vts.client.pages.Page;

public class VtsTaskModel extends BaseTreeModel
{
	private List<Entry> entries = new ArrayList<Entry>();
	
	private Category createYearPlanEntries()
	{
		Category category = new Category("年计划");
			category.add(new YearEntry ("Y2006", "2006年"));
			category.add(new YearEntry ("Y2007", "2007年"));
			category.add(new YearEntry ("Y2008", "2008年"));
			category.add(new YearEntry ("Y2009", "2009年"));
			category.add(new YearEntry ("Y2010", "2010年"));
		return category;
	}
	private Category createMonthPlanEntries()
	{
		Category category = new Category("月计划");
			category.add(new MonthEntry ("M200806", "2008年06月"));
			category.add(new MonthEntry ("M200807", "2008年07月"));
			category.add(new MonthEntry ("M200808", "2008年08月"));
		return category;
	}
	private Category createWeekPlanEntries()
	{
		Category category = new Category("周计划");
		category.add(new MonthEntry ("W20080701", "2008年07月,第一周"));
		category.add(new MonthEntry ("W20080702", "2008年07月,第二周"));
		category.add(new MonthEntry ("W20080703", "2008年07月,第三周"));
		return category;
	}
	private Category createDayPlanEntries()
	{
		Category category = new Category("日常计划");
			Category week;
			week = new Category ("上一周");
			category.add(week);
				week.add(new DayEntry ("D20080713", "2008年07月13日,星期一"));
				week.add(new DayEntry ("D20080714", "2008年07月14日,星期二"));
				week.add(new DayEntry ("D20080715", "2008年07月15日,星期三"));
				week.add(new DayEntry ("D20080716", "2008年07月16日,星期四"));
				week.add(new DayEntry ("D20080717", "2008年07月17日,星期五"));
				week.add(new DayEntry ("D20080718", "2008年07月18日,星期六"));
				week.add(new DayEntry ("D20080719", "2008年07月19日,星期天"));
			week = new Category ("本周");
			category.add(week);
				week.add(new DayEntry ("D20080713", "2008年07月13日,星期一"));
				week.add(new DayEntry ("D20080714", "2008年07月14日,星期二"));
				week.add(new DayEntry ("D20080715", "2008年07月15日,星期三"));
				week.add(new DayEntry ("D20080716", "2008年07月16日,星期四"));
				week.add(new DayEntry ("D20080717", "2008年07月17日,星期五"));
				week.add(new DayEntry ("D20080718", "2008年07月18日,星期六"));
				week.add(new DayEntry ("D20080719", "2008年07月19日,星期天"));
			week = new Category ("下一周");
			category.add(week);
				week.add(new DayEntry ("D20080713", "2008年07月13日,星期一"));
				week.add(new DayEntry ("D20080714", "2008年07月14日,星期二"));
				week.add(new DayEntry ("D20080715", "2008年07月15日,星期三"));
				week.add(new DayEntry ("D20080716", "2008年07月16日,星期四"));
				week.add(new DayEntry ("D20080717", "2008年07月17日,星期五"));
				week.add(new DayEntry ("D20080718", "2008年07月18日,星期六"));
				week.add(new DayEntry ("D20080719", "2008年07月19日,星期天"));
		return category;
	}
	private Category createProjectEntries ()
	{
		Category category = new Category("项目计划");
		return category;
	}
	private Category createTodayPersonTaskEntries ()
	{
		Category category = new Category("今日派发任务");
		return category;	
	}
	public VtsTaskModel()
	{
		set("overview", new Entry("Overview"));
		
		// Period plan tree content
		Category periodPlans = new Category("周期计划");
		periodPlans.add(createYearPlanEntries());
		periodPlans.add(createMonthPlanEntries());
		periodPlans.add(createWeekPlanEntries());
		periodPlans.add(createDayPlanEntries());
		add(periodPlans);
		// Project tree content
		add(createProjectEntries ());
		// Tody person tasks 
		add(createTodayPersonTaskEntries ());
		
		loadEntries(this);
	}

	public Entry findEntry(String name)
	{
		if (get(name) != null)
		{
			return (Entry) get(name);
		}
		for (Entry entry : getEntries())
		{
			if (name.equals(entry.getId()))
			{
				return entry;
			}
		}
		return null;
	}

	public List<Entry> getEntries()
	{
		return entries;
	}

	private void loadEntries(TreeModel<TreeModel> model)
	{
		for (TreeModel child : model.getChildren())
		{
			if (child instanceof Entry)
			{
				entries.add((Entry) child);
			}
			else if (child instanceof Category)
			{
				loadEntries(child);
			}
		}
	}

}

 

ContentView.java

package com.lingran.vts.client.mvc;

import com.extjs.gxt.ui.client.Events;
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.LayoutRegion;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.TabPanelEvent;
import com.extjs.gxt.ui.client.mvc.AppEvent;
import com.extjs.gxt.ui.client.mvc.Controller;
import com.extjs.gxt.ui.client.mvc.Dispatcher;
import com.extjs.gxt.ui.client.mvc.View;
import com.extjs.gxt.ui.client.util.Margins;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.TabItem;
import com.extjs.gxt.ui.client.widget.TabPanel;
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
import com.lingran.vts.client.AppEvents;
import com.lingran.vts.client.model.Entry;
import com.lingran.vts.client.pages.Page;

public class ContentView extends View {

  private TabPanel tabPanel;
  private Page current;

  public ContentView(Controller controller) {
    super(controller);
  }

  public void initialize() {
    tabPanel = new TabPanel();
    tabPanel.setBorderStyle(false);
    tabPanel.setBodyBorder(false);
    tabPanel.setTabScroll(true);
    tabPanel.setAnimScroll(true);
    /*
    tabPanel.addListener(Events.Remove, new Listener<TabPanelEvent>() {
      public void handleEvent(TabPanelEvent be) {
        TabItem item = be.item;
        Entry entry = (Entry)item.getModel();
        Dispatcher.forwardEvent(AppEvents.HidePage, entry);
      }
    });
    */
    /*
	 * tabPanel.addListener(Events.BeforeSelect, new Listener<TabPanelEvent>() {
	 * public void handleEvent(TabPanelEvent be) { Entry entry =
	 * (Entry)be.item.getData("entry"); if (entry.getPage() != current) {
	 * be.doit = false; VtsTask.showPage(entry); } } });
	 */
    ContentPanel center = (ContentPanel) Registry.get("centerPanel");
	    center.setLayout(new BorderLayout());
	    
	    //ContentPanel north = new ContentPanel();
	    ContentPanel west = new ContentPanel();
	    ContentPanel east = new ContentPanel();
	    ContentPanel south = new ContentPanel();

	    BorderLayoutData westData = new BorderLayoutData(LayoutRegion.WEST, 300);
	    westData.setSplit(true);
	    westData.setCollapsible(true);
	    westData.setMargins(new Margins(5));
	    
	    BorderLayoutData eastData = new BorderLayoutData(LayoutRegion.CENTER);
	    eastData.setMargins(new Margins(5, 0, 5, 0));
	    
	    BorderLayoutData southData = new BorderLayoutData(LayoutRegion.SOUTH, 200);
	    southData.setSplit(true);
	    southData.setCollapsible(true);
	    southData.setFloatable(true);
	    southData.setMargins(new Margins(0, 5, 5, 5));
	    
	    center.add(west, westData);
	    center.add(east, eastData);
	    center.add(south, southData);
    center.add(tabPanel);
  }

  protected void handleEvent(AppEvent event) 
  {
/*
 * switch (event.type) { case AppEvents.ShowPage: Entry entry = (Entry)
 * event.data; onShowPage(entry); break; case AppEvents.HidePage: current =
 * null; break; }
 */
  }

}

 

 

下面是部分图片:

1.png(拖拽的图片)

 

  • 大小: 11.4 KB
分享到:
评论

相关推荐

    EXT-GWT(GXT) 2.2.4 JAVA API DOC chm 版

    EXT-GWT,全称为Ext GWT,是Sencha公司推出的一款基于Java的开源富互联网应用程序(Rich Internet Application,RIA)开发框架。GXT是EXT-GWT的简称,它提供了丰富的用户界面组件,允许开发者用Java代码来构建复杂的...

    EXT-GWT(GXT)2.2.3 API DOC.zip

    EXT-GWT,全称为Ext GWT,是Sencha公司开发的一个强大的Java库,用于构建富互联网应用程序(RIA)。GXT是EXT-GWT的扩展,它提供了更多组件、样式和功能,使得开发者能够创建出与桌面应用相媲美的用户体验。GXT 2.2.3...

    搭建简单的EXT-GWT(GXT)的开发环境(四)ext-gwt(gxt)结合google map第三版开发

    在本篇内容中,我们将探讨如何搭建一个简单的EXT-GWT(GXT)开发环境,并将其与Google Maps API第三版集成。 首先,搭建EXT-GWT开发环境涉及以下步骤: 1. **安装Java Development Kit (JDK)**:EXT-GWT是基于Java...

    gwt-ext-tree

    在实际开发中,`exttree` 文件可能是这个库的一个示例或者实现文件,包含了使用 GWT-Ext-Tree 创建树形结构的代码。通过对这个文件的学习和理解,开发者可以更好地掌握如何在项目中集成和使用 GWT-Ext-Tree 组件。 ...

    ext-gwt分页 鉴于网上关于ext-gwt的技术文章很少代码页很少本着开源的精神本人特地写了一个分页的组件供大家学习欢迎下载

    EXT-GWT,全称是Ext GWT,是Sencha公司推出的一个用于构建富客户端Web应用的JavaScript库。它基于Google的GWT(Google Web Toolkit)技术,提供了丰富的用户界面组件和强大的数据绑定机制,使得开发者可以使用Java...

    EXT-GWT 2.2.0 API DOC (gxt) chm版

    EXT-GWT 2.2.0 API DOC (gxt) chm 版 。 2010年10月制作。完美的搜索功能。如果打不开,请选中它,点右键 看属性,选择解除锁定。别再抱怨打不开了。

    EXT-GWT(GXT) 2.2.5 JAVA API DOC chm 版

    EXT-GWT(GXT) 2.2.4 JAVA API DOC chm 版.完美的的搜索功能,支持全文检索。2011年11月制作。如果打不开,请选中它,点右键 看属性,选择解除锁定。别再抱怨打不开了。

    更新的ext-gwt选课系统

    【更新的ext-gwt选课系统】是一款基于EXT-GWT技术构建的在线选课平台,旨在提供高效、...对于开发者来说,EXT-GWT选课系统的实现也是一次学习和实践EXT-GWT框架的好机会,可以深入理解如何利用其特性构建大型Web应用。

    搭建简单的EXT-GWT(GXT)的开发环境(三)gxt结合spring和hibernate进行数据操作

    本篇文章将聚焦于如何在EXT-GWT中整合Spring框架和Hibernate ORM,以实现高效的数据操作。 首先,让我们了解EXT-GWT(GXT)的核心概念。EXT-GWT是GWT的一个扩展,它提供了大量的UI组件,如表格、树、表单等,以及...

    搭建简单的EXT-GWT(GXT)的开发环境

    EXT-GWT(GXT)是一种基于Google Web Toolkit (GWT)的开源JavaScript库,用于构建富客户端的Web应用程序。GXT提供了丰富的用户界面组件和样式,使得开发者能够创建出类似于桌面应用的用户体验。本文将详细介绍如何...

    ext-gwt的下载非常好

    gxt的下载非常好,ext-gwt的下载非常好

    EXT-GWT 2.2.3 API DOC (gxt) chm 版

    EXT-GWT 2.2.3 API DOC (gxt) chm 版,完美的的搜索功能,支持全文检索。2011年3月制作。如果打不开,请选中它,点右键 看属性,选择解除锁定。别再抱怨打不开了。

    EXT-GWT 2.1.0 API Doc chm版(新版本已可用)

    EXT-GWT2.1.0 java api 文档 chm格式方便查找2010年7月制作 完美的搜索,支持全文检索功能。另新版本EXT-GWT2.2.0 java api 已可用请到http://download.csdn.net/source/2700814 下载

    Ext-Gwt(GWT)开发实例(整合Spring +Hibernate)

    标题 "Ext-Gwt(GWT)开发实例(整合Spring +Hibernate)" 涉及到的是一个实际项目开发的教程,其中结合了三个重要的技术框架:Google Web Toolkit (GWT),Spring 和 Hibernate。这个实例旨在展示如何在Web应用开发中...

    EXT-GWT 2.2.2 API DOC (gxt) chm 版

    EXT-GWT 2.2.2 API DOC (gxt) chm 版 。 2011年3月制作。完美的搜索功能。 如果打不开,请选中它,点右键 看属性,选择解除锁定。别再抱怨打不开了。

    EXT-GWT2.0.1 API DOC.chm(新版本已可用请看软件说明)

    EXT-GWT2.0.1 java api 文档 chm格式方便查找2009年9月制作 注意:请到下面网址下载新版本, 新版本解决了旧版的部分搜索问题,并且api升级到了2.1.0版,EXT-GWT2.1.0 java api 文档 chm格式 2010年7月制作,地址...

    GWT EXT 教程全集

    "GWT+Quickview+-+by+elephi[1].dong+.mht"文件可能是一个关于GWT快速预览功能的教程或演示,帮助开发者了解如何在GWT应用中实现快速查看和预览功能,提升用户体验。 "GWT快速开发.pdf"这本书籍或手册,旨在加速...

    gxt-2.1.1-gwt2 最新的

    gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2

    Gwt-ext学习笔记

    Gwt-ext是这两个技术的桥梁,它将GWT与Ext JS的组件库集成,使开发者可以在GWT应用中使用Ext JS的组件。Gwt-ext通过提供Java封装类,让开发者可以使用Java API来操作和配置Ext JS组件,从而保持代码的整洁和一致性。...

Global site tag (gtag.js) - Google Analytics