From: JIRA (f. J. D. ) <ji...@pc...> - 2013-01-12 06:19:21
|
<style> /* Changing the layout to use less space for mobiles */ @media screen and (max-device-width: 480px), screen and (-webkit-min-device-pixel-ratio: 2) { #email-body { min-width: 30em !important; } #email-page { padding: 8px !important; } #email-banner { padding: 8px 8px 0 8px !important; } #email-avatar { margin: 1px 8px 8px 0 !important; padding: 0 !important; } #email-fields { padding: 0 8px 8px 8px !important; } #email-gutter { width: 0 !important; } } </style> <div id="email-body"> <table id="email-wrap" align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#f0f0f0;color:#000000;width:100%;"> <tr valign="top"> <td id="email-page" style="padding:16px !important;"> <table align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#ffffff;border:1px solid #bbbbbb;color:#000000;width:100%;"> <tr valign="top"> <td bgcolor="#003366" style="background-color:#003366;color:#ffffff;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;line-height:1;"><img src="http://jira.pcgen.org/s/en_US7r5c5v-418945332/812/6/_/images/icon-jira-logo.png" alt="" style="vertical-align:top;" /></td> </tr><tr valign="top"> <td id="email-banner" style="padding:32px 32px 0 32px;"> <table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="width:100%;"> <tr valign="top"> <td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;padding:0;"> <img id="email-avatar" src="http://jira.pcgen.org/secure/useravatar?avatarId=10142" alt="" height="48" width="48" border="0" align="left" style="padding:0;margin: 0 16px 16px 0;" /> <div id="email-action" style="padding: 0 0 8px 0;font-size:12px;line-height:18px;"> <a class="user-hover" rel="jamesd" id="email_jamesd" href="http://jira.pcgen.org/secure/ViewProfile.jspa?name=jamesd" style="color:#326ca6;">James Dempsey</a> commented on <img src="http://jira.pcgen.org/images/icons/newfeature.gif" height="16" width="16" border="0" align="absmiddle" alt="New Feature"> <a style='color:#326ca6;text-decoration:none;' href='http://jira.pcgen.org/browse/CODE-2006'>CODE-2006</a> </div> <div id="email-summary" style="font-size:16px;line-height:20px;padding:2px 0 16px 0;"> <a style='color:#326ca6;text-decoration:none;' href='http://jira.pcgen.org/browse/CODE-2006'><strong>Improve Debug capabilities of CDOM Core</strong></a> </div> </td> </tr> </table> </td> </tr> <tr valign="top"> <td id="email-fields" style="padding:0 32px 32px 32px;"> <table border="0" cellpadding="0" cellspacing="0" style="padding:0;text-align:left;width:100%;" width="100%"> <tr valign="top"> <td id="email-gutter" style="width:64px;white-space:nowrap;"></td> <td> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td colspan="2" style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 16px 0;width:100%;"> <div class="comment-block" style="background-color:#edf5ff;border:1px solid #dddddd;color:#000000;padding:12px;"><p>So looking at this patch, to comply with he UI design the charId must not be exposed by the CharacterFacade and the logic to interact with the core must be moved from the CoreViewFrame window into the facade layer. This would probably be best as a method added to CharacterFacade which is serviced by another class in the facade layer.</p> <p>Below I have added some suggested code to pull the core interaction down to the facade layer, including using an enum to split the implementing classes from the UI usage. Currently the UI has no knowledge of the concrete classes such as Language. I've also included the example code to grab the current character.</p> <p>Lastly if you wanted to use a tree table rather than a JTree, then it might be better to use a dedicated node in the same way EquipNode is used. Happy to help if you want to go that way.</p> <div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>CoreViewAction</b></div><div class="codeContent panelContent"> <pre class="code-java"><span class="code-keyword">public</span> void actionPerformed(ActionEvent e) { <span class="code-comment">// don't overwrite frame </span> CoreViewFrame cvf = <span class="code-keyword">new</span> CoreViewFrame(); CharacterFacade cf = frame.getSelectedCharacterRef().getReference(); cvf.initialize(cf); cvf.setVisible(<span class="code-keyword">true</span>); } </pre> </div></div> <div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>CoreViewFrame</b></div><div class="codeContent panelContent"> <pre class="code-java"><span class="code-keyword">public</span> void initialize(CharacterFacade character) { [...] tree = <span class="code-keyword">new</span> JTree(character.getCoreViewTree(CoreDebugClass.Language)); JScrollPane pane = <span class="code-keyword">new</span> JScrollPane(tree); [...] } </pre> </div></div> <div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>CoreDebugClass</b></div><div class="codeContent panelContent"> <pre class="code-java"><span class="code-keyword">public</span> <T <span class="code-keyword">extends</span> Loadable> <span class="code-keyword">enum</span> CoreDebugClass<T> { Language{<span class="code-quote">"Language"</span>, Language.class}; <span class="code-keyword">private</span> <span class="code-object">String</span> title; <span class="code-keyword">private</span> <span class="code-object">Class</span><T> coreClass; <span class="code-keyword">private</span> CoreDebugClass(<span class="code-object">String</span> title, <span class="code-object">Class</span><T>) {[assignments} <span class="code-comment">//toString <span class="code-keyword">return</span> title; </span> <span class="code-comment">// getCoreClass </span>} </pre> </div></div> <div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>CharacterFacadeImpl</b></div><div class="codeContent panelContent"> <pre class="code-java"><span class="code-keyword">public</span> DefaultMutableTreeNode buildTree(CoreDebugClass cdc) { <span class="code-keyword">return</span> CharacterUtils.buildCoreDebugTree(theCharacter, cdc); } </pre> </div></div> <div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>CharacterUtils</b></div><div class="codeContent panelContent"> <pre class="code-java"><span class="code-keyword">public</span> DefaultMutableTreeNode buildTree(CoreDebugClass cdc) { <span class="code-object">Class</span> cl = cdc.getCoreClass(); [.. logic currently in CoreViewFrame.buildTree ..] } </pre> </div></div></div> <div style="color:#505050;padding:4px 0 0 0;"> </div> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td><!-- End #email-page --> </tr> <tr valign="top"> <td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:10px;line-height:14px;padding: 0 16px 16px 16px;text-align:center;"> This message is automatically generated by JIRA.<br /> If you think it was sent incorrectly, please contact your JIRA administrators<br /> For more information on JIRA, see: <a style='color:#326ca6;' href='http://www.atlassian.com/software/jira'>http://www.atlassian.com/software/jira</a> </td> </tr> </table><!-- End #email-wrap --> </div><!-- End #email-body --> |