Show
Ignore:
Timestamp:
06/29/08 01:01:05 (6 years ago)
Author:
todogzm
Message:

登録内容一覧、BookmarkablePagelinkのタイトル動的表示対応、TextArea表示内容の改行表示対応。

Location:
lang/java/Wicketropy/trunk/src
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • lang/java/Wicketropy/trunk/src/main/java/jp/dip/todo/wicket/tropy/BasePage.html

    r9602 r14805  
    3434 <div id="firstSide" class="sidebar"> 
    3535  <h4>サイドバータイトル</h4> 
    36   <ul> 
    37    <li><a href="#" class="lists">リスト</a></li> 
    38    <li><a href="#" class="lists">リスト</a></li> 
    39    <li><a href="#" class="lists">リスト</a></li> 
    40    <li><a href="#" class="lists">リスト</a></li> 
    41    <li><a href="#" class="lists">リスト</a></li> 
     36  <ul wicket:id="recentEntries"> 
     37   <li><a class="lists" wicket:id="recentLink"></a></li> 
    4238  </ul> 
    4339 </div> 
  • lang/java/Wicketropy/trunk/src/main/java/jp/dip/todo/wicket/tropy/BasePage.java

    r9868 r14805  
    1515 *  under the License. 
    1616 */ 
    17  
    1817package jp.dip.todo.wicket.tropy; 
    1918 
     19import com.google.inject.Inject; 
     20import jp.dip.todo.wicket.tropy.model.TropyEntry; 
     21import jp.dip.todo.wicket.tropy.service.Service; 
     22import org.apache.wicket.PageParameters; 
     23import org.apache.wicket.markup.ComponentTag; 
     24import org.apache.wicket.markup.MarkupStream; 
    2025import org.apache.wicket.markup.html.WebPage; 
     26import org.apache.wicket.markup.html.link.BookmarkablePageLink; 
     27import org.apache.wicket.markup.html.link.Link; 
     28import org.apache.wicket.markup.html.list.ListItem; 
     29import org.apache.wicket.markup.html.list.ListView; 
    2130 
    2231/** 
     
    2635public class BasePage extends WebPage { 
    2736 
     37        @Inject 
     38        private Service service; 
     39 
     40        public BasePage() { 
     41                add(new ListView("recentEntries", service.getRecentEntries(5)) { 
     42 
     43                        @Override 
     44                        protected void populateItem(ListItem item) { 
     45                                final TropyEntry entry = (TropyEntry) item.getModel().getObject(); 
     46                                Link link = new BookmarkablePageLink("recentLink", 
     47                                                EntryPage.class, 
     48                                                new PageParameters("id=" + entry.getId())) { 
     49                                        @Override 
     50                                        protected void onComponentTagBody(MarkupStream arg0, ComponentTag arg1) { 
     51                                                replaceComponentTagBody(arg0, arg1, entry.getTitle()); 
     52                                        } 
     53                                }; 
     54                                item.add(link); 
     55//                              item.add(new Label("recentTitle", entry.getTitle())); 
     56                        } 
     57                }); 
     58        } 
    2859} 
  • lang/java/Wicketropy/trunk/src/main/java/jp/dip/todo/wicket/tropy/EntryPage.java

    r9868 r14805  
    2626import org.apache.wicket.markup.html.WebPage; 
    2727import org.apache.wicket.markup.html.basic.Label; 
     28import org.apache.wicket.markup.html.basic.MultiLineLabel; 
    2829import org.apache.wicket.markup.html.link.BookmarkablePageLink; 
    2930import org.slf4j.Logger; 
     
    5556                add(new Label("id", String.valueOf(tropyId))); 
    5657                add(new Label("title", entry.getTitle())); 
    57                 add(new Label("body", entry.getBody())); 
     58                add(new MultiLineLabel("body", entry.getBody())); 
    5859                add(new Label("timestamp", (timestamp != null) ? timestamp.toString() : "")); 
    5960                add(new BookmarkablePageLink("editPage", EditPage.class, new PageParameters("id=" + tropyId))); 
  • lang/java/Wicketropy/trunk/src/main/java/jp/dip/todo/wicket/tropy/service/Service.java

    r9268 r14805  
    1919 
    2020import com.google.inject.ImplementedBy; 
     21import java.util.List; 
    2122import jp.dip.todo.wicket.tropy.model.TropyEntry; 
    2223 
     
    3738 
    3839        public void putTropyEntry(TropyEntry tropy) throws TropyException; 
     40         
     41        public List<TropyEntry> getRecentEntries(int maxNum); 
    3942} 
  • lang/java/Wicketropy/trunk/src/main/java/jp/dip/todo/wicket/tropy/service/ServiceImpl.java

    r9268 r14805  
    2626import java.io.InputStreamReader; 
    2727import java.io.OutputStreamWriter; 
     28import java.util.ArrayList; 
     29import java.util.Arrays; 
     30import java.util.Comparator; 
    2831import java.util.Date; 
     32import java.util.List; 
    2933import java.util.Random; 
    3034import jp.dip.todo.wicket.tropy.WicketApplication; 
     
    136140                return rand.nextInt(MAX_ID) + 1; 
    137141        } 
     142 
     143        public List<TropyEntry> getRecentEntries(int maxNum) { 
     144                File[] entries = folder.listFiles(); 
     145                Arrays.sort(entries, new Comparator<File>() { 
     146                        @Override 
     147                        public int compare(File o1, File o2) { 
     148                                return (int)(o2.lastModified() - o1.lastModified()); 
     149                        } 
     150                }); 
     151                 
     152                File[] recents = Arrays.copyOfRange(entries, 0, Math.min(maxNum, entries.length)); 
     153                 
     154                List<TropyEntry> result = new ArrayList<TropyEntry>(recents.length); 
     155                for (File entry : recents) { 
     156                        result.add(getTropyEntry(entry)); 
     157                } 
     158                 
     159                return result; 
     160        } 
    138161} 
  • lang/java/Wicketropy/trunk/src/test/java/jp/dip/todo/wicket/tropy/TestHomePage.java

    r9868 r14805  
    6464                tester.assertRenderedPage(EntryPage.class); 
    6565                tester.assertLabel("title", "title-8888"); 
    66                 tester.assertLabel("body", "8 8 8 8\n"); 
     66                tester.assertModelValue("body", "8 8 8 8\n"); 
    6767        } 
    6868