`
SimonLei
  • 浏览: 176195 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
看这篇文章: http://forums.smartclient.com/showpost.php?p=36088&postcount=4 看样子SmartGWT 的人认为 UiBinder 对 SmartGWT来说是一种倒退,而且SmartClient 本身也提供了一套以 xml 来写UI的东西。   不过,不依靠标准,总是会出现问题的。而且,使用UiBinder,可以很方便的将 Html 原型 直接拿过来就使用,UI人员也很方便的介入到开发过程当中。   目前我们在使用 Echo3,就是使用了一套自己做的类似于 UiBinder的机制,使用 Html 来 做为 lay ...
在使用 Hibernate Search时,为了降低复杂性,通常都把所有的 @Field 加上 name = "ALL",然后在搜索的时候,只支持对 "ALL" 这个 Field 的搜索。这样的 好处当然是简单,不需要在搜索的时候去解析用户的输入,高亮的时候也不需要 去逐个解析搜索条件。   当然,有利必有弊,坏处就是不能精确的检索。例如,我只想找标题里面含有某个特殊 字符的,那么我的这种做法就没戏了。   解决方案是什么呢,其实也简单,还是 FieldBridge。我在 @Field 里面,不定义name, 也就是说,原来是title的 ...
公司一个老项目,这两天爆出了一个问题。异常都是   java.lang.IllegalStateException: getOutputStream() has already been called for this response   这个项目的内容,就是通过页面下载一个word文件,当然这个word文件是根据用户的选择动态生 ...
和刚才的需求 一样,我要在一个 DetailViewer里面加上 icon, 试了好几种方法,类似于ListGrid里面的 setCellStyle和 覆盖 setCellStyleHandler 方法都试过了,前者不起作用,后者只能 返回css 的 class,而不像 ListGrid 里面可以返回text 的 style。   幸好 DetailViewerField 还有个 DetailFormatter 可以设置,通过这个 formatter,可以做很多事情,例如把 文件大小改成带逗号的,把日期 按照自己想要的格式显示,也可以满足上一篇blog里面的要求。上代码:   ...
常常会需要在Field的某一列显示一个icon,例如文件列表,在文件名前面放一个icon。 很正常的需求,但是SmartGWT的 ListGrid,只能在设置 ListGridField 的时候,设置 其type 为 image 或者 icon。而对于在同一列里面既要显示icon,又要显示文本,似乎 比较困难。   幸好 ListGrid 有个 getCellCSSText 的方法可以覆盖。那么我们就可以在这个方法当中, 设置一下它的css,用 background-image 来达到这样的目标,上代码:   docsList = new ListGrid() { @Over ...
前几天部署了一下SmartGWT做的应用,今天有些小修改,又重新 compile 之后, 把目标目录覆盖了一下。这个时候,噩梦开始了。   首先,表现出来的症状就是后台抛出个异常,是 org.eclipse.jetty.util.log.StdErrLog.format 里面的NullPointe ...
SmartGWT的换肤不是问题,他的showcase里面就有例子。不过有个问题, smartgwt-skins.jar 里面的皮肤和smartgwt.jar里面的Enterprise Blue/ Enterprise Gray 皮肤的css定义有些不配套。例如, button_Over_stretch.png 放的位置就不一样,缺省的在 cssbutton目录下,而TreeFrog则在button目录下。 如果这几种样式都同时装载,那么就会出现TreeFrog当中某些图片无法正常展示的情况。   这时候,在 module 的xml定义当中,不是缺省的 inherits SmartGw ...
在 http://simonlei.iteye.com/blog/577068 这篇文章中,我找到了一个简单的办法来对 索引进行reindex。不过,现在又有个需求,我希望能够对 reindex的过程做一个进度条。   看了一下文档,fullTextSession.createIndexer() 得到的实际上是 MassIndexerImpl,使用这个类 的 startAndWait 方法来进行reindex,就是阻塞的,使用 start 就是异步的。而且,更美好的是, MassIndexerImpl 类里面使用了一个 MassIndexerProgressMonitor, ...
我的需求很简单,一个ListGrid,大概只显示了最重要的两列,更多的内容呢,不外乎 几种方式展现。 一种是双击打开Dialog,用户操作起来太麻烦,放弃; 另一种是用Expand,在每一行前面有个小加号,用户点击之后展开。不仅丑,而且麻烦,放弃; 用hover,用户鼠标放上去之后,就把详细的信息给展示出来,鼠标移走后就没有了,这个不错,就它了。 决定了之后,就是用 hover handler了。这里有几点需要注意的:   要记得设置 setShowHover(true)和setCanHover(true)。设置前者可以展示hover,设置后者才能响应hover的事件。 我 ...
这个思路其实是为了解决title 中文问题的时候发现的。当时想着,实在不行我就自己做 一个DataSource的定义。SmartGWT 里,DataSource就是它的元数据核心。 这里,DataSource实际上有两个, 其一是客户端的 com.smartgwt.client.data.DataSource ...
SmartGwt 里面采用 .ds.xml 文件来定义客户端与服务器之间交互的数据源。 用英文都没有问题,一旦碰到中文的title,用正常的 <script src="sc/DataSourceLoader?dataSource=xxx"></script> 这种方式,就会在页面上显示为若干个??   搜索smartclient的论坛,发现有些解决方案,将我的解决方案记录一下:   1. 把html改成jsp,引入 <%@ taglib uri="/WEB-INF/iscTaglib.xml" prefix= ...
在使用hibernate作为datasource的情况下,有两种方法。   第一种是我最开始用的办法,比较普通,也比较土。使用RPC来进行校验,在提交之前,使用RPC的调用。 XxxxRemoteService.Util.getInstance().isFileNameValid( form.getValueAsString( "name"), new AsyncCallback<Boolean>() { @Override public void onSuccess(Boolean result) { if ( result) { f ...
错误: Hibernate的saveOrUpdate没有效果,爆出错误 ignoring persistent instance   对策: Hibernate 的 saveOrUpdate不起作用,打开debug可以看到 ignoring persistent instance之类的,可以用手工flush的方式来提交。但是根本问题是没有加上txManager。解决方案很简单,在Bean上增加  @Transactional,然后在xml当中增加: <tx:annotation-driven transaction-manager="txManager" ...
使用Hibernate Search方便是方便,可是找出来的结果,都是一个个的实体。而当我想要 使用高亮时,就没那么简单了。一开始走了弯路,按照以前直接用 lucene 的经验,打算自己 找到 QueryHits,然后对 QueryHits的结果进行逐个的高亮。幸好及时搜索了一下,对我帮助 最大的就是 https://forums.hibernate.org/viewtopic.php?f=9&t=982678 这篇文章。 当然,这篇文章也有点复杂了,不知道为啥要对query进行rewrite。在我看来,帮助最大的就是 提醒了我,可以用 query.setProjection( ...
以前做过 Hibernate Search的重建索引,就是老老实实的把所有的Mapped Class 找出来, 然后一个Class一个Class的找每个对象进行reindex,代码很长,写的很累。如下,先找到 所有的Class,   public void reindex() { Session session = getSession(); FullTextSession fullTextSession = Search.getFullTextSession( session); fullTextSession.setFlushMo ...
Global site tag (gtag.js) - Google Analytics