一條老狗

                     老狗拉破車
          posts - 12, comments - 11, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          2007年10月24日

          今天由XNA3.0升級(jí)到4.0,竟然報(bào)錯(cuò):

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

          原來是因?yàn)槲业娘@卡不支持DirectX 10,在工程屬性中把Hidef修改為Reach即可。

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

          posted @ 2010-09-24 21:07 一條老狗 閱讀(4047) | 評(píng)論 (2)編輯 收藏

          JIRA插件開發(fā)的工作本早已結(jié)束。
          但近日有個(gè)朋友來問,如何在IssueNavigator顯示時(shí),顯示用戶的帳號(hào)名(username),而不是其FullName。

          當(dāng)時(shí)我為他提供了兩種思路:

          思路1。寫一個(gè)自定義字段插件,這個(gè)插件就是按用戶名來顯示報(bào)告者及被分派者。
          然后再自定義問題導(dǎo)航欄,把你的自定義字段添加進(jìn)去即可。

          思路2。繼承并覆蓋問題導(dǎo)航功能的Action,直接修改其顯示的數(shù)據(jù)。

          這個(gè)問題挺有意思,今日閑來無事,對(duì)第二種思路寫了點(diǎn)代碼來實(shí)現(xiàn)一下。

          首先我們繼承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中的對(duì)象換為我們的新對(duì)象(DocumentIssueImpl)。
          注意: 這里面為了取回document對(duì)象,使有了反射。或許有其它辦法,這里只做一個(gè)測(cè)試,不考慮其它問題。

          為此,我們需要再繼承一個(gè)類 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
          這樣當(dāng)調(diào)用 getFullName 時(shí)返回的就是 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 一條老狗 閱讀(2159) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 临漳县| 西充县| 莱西市| 山丹县| 凤翔县| 介休市| 紫金县| 厦门市| 合作市| 乳源| 五大连池市| 邵阳市| 茶陵县| 揭西县| 阿坝县| 通城县| 洞头县| 大厂| 扎囊县| 神农架林区| 莲花县| 阿克陶县| 布尔津县| 郓城县| 嘉禾县| 浙江省| 重庆市| 安吉县| 通城县| 新竹市| 昌乐县| 江安县| 灵武市| 满洲里市| 桃江县| 永兴县| 凤山县| 嘉禾县| 高密市| 响水县| 襄汾县|