小编And*_*olo的帖子

'git add --patch'包含新文件?

当我运行时git add -p,有没有办法让git选择新制作的文件作为选择?

因此,如果我创建一个新文件foo.java,然后运行git add -p,git将不允许我选择要添加到索引中的文件内容.

git shell git-add

89
推荐指数
5
解决办法
2万
查看次数

GWT TypeOracle.getTypes不返回所有类型

我有一个自定义生成器,只为我的项目中的某些类生成代码.下面的代码位于generate方法的开头,并将我需要处理的所有类放在clazzes列表中

TypeOracle oracle = context.getTypeOracle();
JClassType markerInterfaceType = oracle.findType(MY_PARENT_CLASS.class.getName());
List<JClassType> clazzes = new ArrayList<JClassType>();
for (JClassType classType : oracle.getTypes()) {
  if (!classType.equals(markerInterfaceType)
      && classType.isAssignableTo(markerInterfaceType)) {
    clazzes.add(classType);
  }
}
Run Code Online (Sandbox Code Playgroud)

这段代码已经保存了一年多,但自上周以来,似乎发电机没有考虑到几个等级.

经过一番挖掘,我发现那些类甚至不在返回的列表中 oracle.getTypes()

  • 那些被忽略的类不是新创建的类(有些类在几个月内保持不变)
  • 据我所知,没有办法区分将被忽略的类与任何其他类
  • 我们的gwt版本没有升级(我们中的一些人使用2.5.0,其他人使用2.5.1)
  • 这些类使用的包也没有升级
  • oracle.findType(MISSING_CLASS.class.getName()) 回报 null
  • 问题只出现在某些人身上,但不会出现在同一个课程上
  • 重命名有问题的类似乎可以解决问题

我最好的猜测是我在某处有缓存问题,但我不知道在哪里看.

java gwt types code-generation

8
推荐指数
1
解决办法
529
查看次数

@XmlElements标有@XmlJavaTypeAdapters?

我有这种情况

@XmlType(name ="", propOrder={"value"})
@XmlRootElement(name = "compound")
public class Compound extends Value {
  @XmlElements({
  @XmlElement(name="simple", type=Simple.class),
  @XmlElement(name="compound", type=Compound.class)
  })
  protected List<Value> value;
  // ...
}
Run Code Online (Sandbox Code Playgroud)

因此,化合物是简单和/或化合物的列表.两者都从定义为的Value扩展

public abstract class Value implements Serializable {}
Run Code Online (Sandbox Code Playgroud)

Simple是一个标有适配器的类,用于编组/解组简单字符串

@XmlJavaTypeAdapter(SimpleAdapter.class)
public class Simple extends Value {
  private java.lang.String simple;
  // ...
}
Run Code Online (Sandbox Code Playgroud)

化合物不需要适配器.

问题是,如果我使用简单'原样',它正确编组/解组为

<simple>my.text.here</simple>
Run Code Online (Sandbox Code Playgroud)

但如果我在化合物中使用它,它会输出类似的东西

<compound>
  //...
  <simple>
    <value>my.text.here</value>
  </simple>
  //...
</compound>
Run Code Online (Sandbox Code Playgroud)

而我只是想知道为什么......我会错过什么吗?我怎样才能删除那个"价值"?在我看来,根本没有使用适配器,是否可以在@XmlElements内标记的类型中使用适配器?

编辑

经过几次测试后,我发现问题可能在于我如何处理Simple实例.所以我简化了我的初步问题:

鉴于像一个简单的类

@XmlRootElement("simple")
public class Simple {
  private java.lang.String innerText;
  // getters/setters
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得像编组一样的编组输出

<simple>
  my.inner.text.here
</simple>
Run Code Online (Sandbox Code Playgroud)

代替

<simple>
  <value>my.inner.text.here</value> …
Run Code Online (Sandbox Code Playgroud)

java xml jaxb xml-serialization jaxb2

7
推荐指数
1
解决办法
2276
查看次数

具有子行的GWT 2.5 DataGrid SelectionModel

当使用TableBuilder创建行和亚行,如预期选择模型不能正常工作.单击子视图的复选框时,未选择该行,但是,将选择父行.

我尝试过载onBrowserEventCheckboxCell,以人工处理的选择,但似乎在DataGrid本身按checkboxcell时触发选择事件.

如果行和子行来自相同类型,如何添加支持行和子行的选择模型?

gwt selectionmodel celltable gwt-2.5

7
推荐指数
1
解决办法
739
查看次数

在 preventDefault 之后重新触发事件

我用 preventDefault 停止了一个事件。现在我想重新抛出它。我尝试了 fireEvent 但这没有用。有没有办法实现这一目标?

更新 我创建了一个新的事件实例并使用了 elem.dispatchEvent(clickEvent); 而不是 fire 事件。

    Event.addNativePreviewHandler(new Event.NativePreviewHandler()
    {
        public void onPreviewNativeEvent(NativePreviewEvent event) 
        {

            if (event.getTypeInt() == Event.ONMOUSEDOWN)
            {
                Element elem = JSHelper.elementFromPoint(event.getNativeEvent().getClientX(), event.getNativeEvent().getClientY());
                EventListener listener = Event.getEventListener(elem);
                if((listener instanceof ListBox))
                {
                    event.getNativeEvent().preventDefault();



                ////    ((ListBox) listener).fireEvent(event);

                    int y = event.getNativeEvent().getClientY();
                    int x = event.getNativeEvent().getClientX();

                    int screenX = event.getNativeEvent().getScreenX();
                    int screenY = event.getNativeEvent().getScreenY();

                    NativeEvent clickEvent = Document.get().createMouseEvent(
                            "click",true, false,0, screenX, screenY, x, y, false, false,
                            false, false, NativeEvent.BUTTON_LEFT, elem);

                    elem.dispatchEvent(clickEvent);



                }
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

javascript java gwt

5
推荐指数
1
解决办法
1966
查看次数