一条老狗

           老狗拉破车
posts - 12, comments - 11, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2007年7月27日

今天由XNA3.0升级到4.0,竟然报错:

No suitable graphics card supported. Could not find a Direct3D device that supports the XNA Framework HiDef Profile.

原来是因为我的显卡不支持DirectX 10,在工程属性中把Hidef修改为Reach即可。

http://msdn.microsoft.com/en-us/library/ff604995.aspx

posted @ 2010-09-24 21:07 一条老狗 阅读(4021) | 评论 (2)编辑 收藏

JIRA插件开发的工作本早已结束。
但近日有个朋友来问,如何在IssueNavigator显示时,显示用户的帐号名(username),而不是其FullName。

当时我为他提供了两种思路:

思路1。写一个自定义字段插件,这个插件就是按用户名来显示报告者及被分派者。
然后再自定义问题导航栏,把你的自定义字段添加进去即可。

思路2。继承并覆盖问题导航功能的Action,直接修改其显示的数据。

这个问题挺有意思,今日闲来无事,对第二种思路写了点代码来实现一下。

首先我们继承IssueNavigator类:

public class IssueNavigator extends com.atlassian.jira.web.action.issue.IssueNavigator {

    
private boolean convertedResults = false;
    
public SearchResults getSearchResults() throws SearchException {
        SearchResults results 
= super.getSearchResults();
        
if (!convertedResults && results != null{
            convertedResults 
= true;

            List issueList 
= results.getIssues();
            
for (int i = 0; i < issueList.size(); i++{
                com.atlassian.jira.issue.DocumentIssueImpl issue 
=
                        (com.atlassian.jira.issue.DocumentIssueImpl)issueList.get(i);

                Document document 
= null;
                
try {
                    Field f 
= issue.getClass().getDeclaredField("document");
                    f.setAccessible(
true);
                    document 
= (Document)f.get(issue);
                    f.setAccessible(
false);
                }
 catch (NoSuchFieldException e) {
                    e.printStackTrace();
                }
 catch (IllegalAccessException e) {
                    e.printStackTrace();
                }


                DocumentIssueImpl newIssue 
= new DocumentIssueImpl(
                        document,
                        ComponentManager.getInstance().getConstantsManager(),
                        ComponentManager.getInstance().getFieldManager(),
                        ComponentManager.getInstance().getIssueManager(),
                        ComponentManager.getInstance().getIssueFactory(),
                        ComponentManager.getInstance().getAttachmentManager(),
                        ComponentManager.getInstance().getProjectFactory()
                );

                issueList.set(i, newIssue); 
            }

        }


        
return results;
    }


}

然后覆盖其 getSearchResults() 方法,将issueList中的对象换为我们的新对象(DocumentIssueImpl)。
注意: 这里面为了取回document对象,使有了反射。或许有其它办法,这里只做一个测试,不考虑其它问题。

为此,我们需要再继承一个类 DocumentIssueImpl:
public class DocumentIssueImpl extends com.atlassian.jira.issue.DocumentIssueImpl {

    
private User resetUserFullName(User user) {
        user.setFullName(user.getName());
        
return user;
    }


    
public User getAssignee()
    
{
        
return resetUserFullName(super.getAssignee());
    }


    
public User getReporter()
    
{
        
return resetUserFullName(super.getReporter());
    }

}

然后我们覆盖其 getAssignee() getReporter() 方法,把username赋值给fullname
这样当调用 getFullName 时返回的就是 username了。

然后插件配置文件中覆盖IssueNavigation Action

<action name="xxx.IssueNavigator" alias="IssueNavigator">
    
<view name="success">/secure/views/navigator/navigator.jsp</view>
    
<view name="error">/secure/views/navigator/navigator.jsp</view>
</action>

完成!

posted @ 2007-10-24 11:40 一条老狗 阅读(2136) | 评论 (0)编辑 收藏

如果一个单元格的类型不是文本,而是数字该如何清空它呢?

public void setCellValue(double value)

此函数并不能清受NULL,该如何把这个单元格变成空白呢?
方法很简单:

cell.setCellType(HSSFCell.CELL_TYPE_BLANK);

把它的类型改为 HSSFCell.CELL_TYPE_BLANK 即可。

posted @ 2007-08-09 10:35 一条老狗 阅读(2753) | 评论 (0)编辑 收藏

以下是官方的一个例子:

    HSSFWorkbook wb = new HSSFWorkbook();
    HSSFSheet s 
= wb.createSheet();
    HSSFRow r 
= null;
    HSSFCell c 
= null;
    HSSFCellStyle cs 
= wb.createCellStyle();
    HSSFFont f 
= wb.createFont();
    HSSFFont f2 
= wb.createFont();

    cs 
= wb.createCellStyle();

    cs.setFont( f2 );
    
//Word Wrap MUST be turned on
    cs.setWrapText( true );

    r 
= s.createRow( (short2 );
    r.setHeight( (
short0x349 );
    c 
= r.createCell( (short2 );
    c.setCellType( HSSFCell.CELL_TYPE_STRING );
    c.setCellValue( 
"Use \n with word wrap on to create a new line" );
    c.setCellStyle( cs );
    s.setColumnWidth( (
short2, (short) ( ( 50 * 8 ) / ( (double1 / 20 ) ) );

    FileOutputStream fileOut 
= new FileOutputStream( "workbook.xls" );
    wb.write( fileOut );
    fileOut.close();

 

这里它是使用 r.setHeight((short)0x349) 写死了行高的,如何根据实际内容自动计算出其行高呢?
我们可以不设置其行高,此时Excel能够正确显示出来,但看上去太挤,不好看。
我是希望在文字需要占的实际行高基础上再加上一些空白,这样才好看。
但此时调用 r.getHeight() 取不到值。

我想这个需求可能是实现不了了。

 

posted @ 2007-07-27 14:22 一条老狗 阅读(4075) | 评论 (2)编辑 收藏

1、桃源话很奇特,尾音很高,比如“局”,便发音成了“猪”。

  先到县委宣传部,联系到人事局采访。宣传部的人打电话替我预约,用免提。

  宣传部:“喂,你人是猪吗?(人事局)”

  对方:“不是,你搞错了。我不是人是猪(人事局),我娘是猪(粮食局)。”

  我拼命忍住笑,肚子都疼了。

  第二天参加一个县政府的汇报会。会前点名。

  主持人:“哪些单位到了?”

  于是参会者一个个地自报家门:

  “我是公阉猪(公安局)。”

  “我叫肉猪(教育局)。”

  “我有点猪(邮电局)。”

  “我是典型猪(电信局)。”

2、话说湖南一个口音很重的县长到村里作报告: 

  “兔子们,虾米们,猪尾巴!不要酱瓜,咸菜太贵啦!!”
  (翻译:同志们,乡民们,注意吧!不要讲话,现在开会啦!!) 

  县长讲完后,主持人说:“咸菜请香肠酱瓜!”
  (翻译:现在请乡长讲话!) 

  乡长说:“兔子们,今天的饭狗吃了,大家都是大王八!”
  (翻译:同志们,今天的饭够吃了,大家都使大碗吧!) 

  “不要酱瓜,我捡个狗屎给你们舔舔。。。”
  (翻译:不要讲话,我讲个故事给你们听听。。。)

posted @ 2007-07-27 09:45 一条老狗 阅读(364) | 评论 (0)编辑 收藏