Changeset 933


Ignore:
Timestamp:
11/24/10 15:35:44 (14 years ago)
Author:
oschonef
Message:
  • add initial (and preliminary!) browse virtual collection pages
  • misc. markup fixes
  • misc. re-factoring
Location:
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main
Files:
8 added
5 edited
2 moved

Legend:

Unmodified
Added
Removed
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/Application.java

    r906 r933  
    1616
    1717import eu.clarin.cmdi.virtualcollectionregistry.gui.pages.AdminPage;
     18import eu.clarin.cmdi.virtualcollectionregistry.gui.pages.BrowsePrivateCollectionsPage;
    1819import eu.clarin.cmdi.virtualcollectionregistry.gui.pages.CreateVirtualCollectionPage;
    19 import eu.clarin.cmdi.virtualcollectionregistry.gui.pages.HomePage;
     20import eu.clarin.cmdi.virtualcollectionregistry.gui.pages.BrowsePublicCollectionsPage;
    2021import eu.clarin.cmdi.virtualcollectionregistry.gui.pages.LoginPage;
    2122
     
    4849        if (getConfigurationType() != DEPLOYMENT) {
    4950            getMarkupSettings().setStripWicketTags(true);
     51            getMarkupSettings().setStripComments(true);
    5052        }
    51         mountBookmarkablePage("/home", HomePage.class);
     53        mountBookmarkablePage("/public",
     54                BrowsePublicCollectionsPage.class);
     55        mountBookmarkablePage("/private",
     56                BrowsePrivateCollectionsPage.class);
    5257        mountBookmarkablePage("/create", CreateVirtualCollectionPage.class);
    5358        mountBookmarkablePage("/admin", AdminPage.class);
     
    5661    @Override
    5762    public Class<? extends Page> getHomePage() {
    58         return HomePage.class;
     63        return BrowsePublicCollectionsPage.class;
    5964    }
    6065
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/AuthenticationStatePanel.java

    r906 r933  
    6060
    6161    private class LogoutFragment extends Fragment {
    62         private Label usernameLabel;
     62        private final Label usernameLabel;
    6363       
    6464        public LogoutFragment(String id) {
     
    6666            setRenderBodyOnly(true);
    6767            usernameLabel = new Label("username");
     68            usernameLabel.setRenderBodyOnly(true);
    6869            add(usernameLabel);
    6970//            final StatelessLink logoutLink = new StatelessLink("logoutLink") {
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/BasePage.java

    r906 r933  
    2222        // main navigation menu
    2323        final Menu menu = new Menu("menu");
    24         menu.addMenuItem(new MenuItem<HomePage>(
    25                 new Model<String>("Home"),
    26                 HomePage.class));
     24        menu.addMenuItem(new MenuItem<BrowsePublicCollectionsPage>(
     25                new Model<String>("Virtual Collections"),
     26                BrowsePublicCollectionsPage.class));
     27        menu.addMenuItem(new MenuItem<BrowsePrivateCollectionsPage>(
     28                new Model<String>("My Virtual Collections"),
     29                BrowsePrivateCollectionsPage.class));
    2730        menu.addMenuItem(new MenuItem<CreateVirtualCollectionPage>(
    2831                new Model<String>("Create Virtual Collection"),
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/BrowsePublicCollectionsPage.html

    r906 r933  
    77<body>
    88<wicket:extend>
    9   <div style="margin: 5px 0;">Search-Bar/Options here</div>
    10   <table wicket:id="collectionsTable" class="collectionsTable"></table>
     9  <div wicket:id="collectionsTable"></div>
    1110</wicket:extend>
    1211</body>
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/BrowsePublicCollectionsPage.java

    r906 r933  
    33import java.util.Iterator;
    44
    5 import org.apache.commons.lang.time.FastDateFormat;
    65import org.apache.wicket.WicketRuntimeException;
    7 import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
    8 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
    9 import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
    10 import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
    11 import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
    12 import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
    13 import org.apache.wicket.markup.html.basic.Label;
    14 import org.apache.wicket.markup.repeater.Item;
    15 import org.apache.wicket.model.IModel;
    16 import org.apache.wicket.model.Model;
    176
    187import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistry;
     
    2110import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollectionList;
    2211
    23 public class HomePage extends BasePage {
    24     private transient VirtualCollectionRegistry vcr =
    25         VirtualCollectionRegistry.instance();
     12public class BrowsePublicCollectionsPage extends BasePage {
    2613
    2714    @SuppressWarnings("serial")
    28     public HomePage() {
     15    public BrowsePublicCollectionsPage() {
    2916        super();
    30         final DataTable<VirtualCollection> collectionsTable =
    31             new AjaxFallbackDefaultDataTable<VirtualCollection>(
    32                     "collectionsTable",
    33                 createColumns(),
    34                 new SortableDataProvider<VirtualCollection>() {
    35                     @Override
    36                     public Iterator<? extends VirtualCollection> iterator(
    37                             int first, int count) {
    38                         try {
    39                             VirtualCollectionList results =
    40                                 vcr.getVirtualCollections(null, first, count);
    41                             return results.getItems().iterator();
    42                         } catch (VirtualCollectionRegistryException e) {
    43                             throw new WicketRuntimeException(e);
    44                         }
    45                     }
     17        final VirtualCollectionTable table =
     18            new VirtualCollectionTable("collectionsTable", false) {
    4619
    47                     @Override
    48                     public IModel<VirtualCollection> model(VirtualCollection vc) {
    49                         return new Model<VirtualCollection>(vc);
    50                     }
     20            @Override
     21            protected int getCollectionsCount() {
     22                try {
     23                    final VirtualCollectionRegistry vcr =
     24                        VirtualCollectionRegistry.instance();
     25                    VirtualCollectionList results =
     26                        vcr.getVirtualCollections(null, -1, 0);
     27                    return results.getTotalCount();
     28                } catch (VirtualCollectionRegistryException e) {
     29                    throw new WicketRuntimeException(e);
     30                }
     31            }
    5132
    52                     @Override
    53                     public int size() {
    54                         try {
    55                             VirtualCollectionList results =
    56                                 vcr.getVirtualCollections(null, -1, 0);
    57                             return results.getTotalCount();
    58                         } catch (VirtualCollectionRegistryException e) {
    59                             throw new WicketRuntimeException(e);
    60                         }
    61                     }
    62                 }, 16);
    63         collectionsTable.setOutputMarkupId(true);
    64         add(collectionsTable);
    65 
     33            @Override
     34            protected Iterator<VirtualCollection> getCollections(int first,
     35                    int count) {
     36                try {
     37                    final VirtualCollectionRegistry vcr =
     38                        VirtualCollectionRegistry.instance();
     39                    VirtualCollectionList results =
     40                        vcr.getVirtualCollections(null, first, count);
     41                    return results.getItems().iterator();
     42                } catch (VirtualCollectionRegistryException e) {
     43                    throw new WicketRuntimeException(e);
     44                }
     45            }
     46        };
     47        add(table);
    6648    }
    6749
    68     final FastDateFormat df =
    69         FastDateFormat.getInstance("yyyy-MM-dd");
    70 
    71     @SuppressWarnings({ "unchecked", "serial" })
    72     private IColumn<VirtualCollection>[] createColumns() {
    73         final IColumn<?>[] columns = new IColumn<?>[] {
    74                 new PropertyColumn<VirtualCollection>(
    75                         new Model<String>("Name"), "name") {
    76                             @Override
    77                             public String getCssClass() {
    78                                 return "title";
    79                             }
    80                 },
    81                 new PropertyColumn<VirtualCollection>(
    82                         new Model<String>("Type"), "type") {
    83                     @Override
    84                     public String getCssClass() {
    85                         return "type";
    86                     }
    87                 },
    88                 new PropertyColumn<VirtualCollection>(
    89                         new Model<String>("Description"), "description") {
    90                     @Override
    91                     public String getCssClass() {
    92                         return "description";
    93                     }
    94                 },
    95                 new PropertyColumn<VirtualCollection>(
    96                         new Model<String>("Created"), "creationDate") {
    97                     @Override
    98                     public String getCssClass() {
    99                         return "created";
    100                     }
    101 
    102                     @Override
    103                     public void populateItem(
    104                             Item<ICellPopulator<VirtualCollection>> item,
    105                             String componentId,
    106                             IModel<VirtualCollection> model) {
    107                         item.add(new Label(componentId,
    108                                 df.format(model.getObject().getCreationDate())));
    109                     }
    110                 }
    111         };
    112         return (IColumn<VirtualCollection>[]) columns;
    113     }
    114 
    115 } // class HomePage
     50} // class BrowsePublicCollectionsPage
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/CreateVirtualCollectionPage.java

    r906 r933  
    11package eu.clarin.cmdi.virtualcollectionregistry.gui.pages;
    22
     3import java.security.Principal;
     4import java.util.Date;
     5
     6import org.apache.wicket.Page;
     7import org.apache.wicket.WicketRuntimeException;
    38import org.apache.wicket.authorization.strategies.role.Roles;
    49import org.apache.wicket.authorization.strategies.role.annotations.AuthorizeInstantiation;
    510
     11import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistry;
     12import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistryException;
     13import eu.clarin.cmdi.virtualcollectionregistry.gui.ApplicationSession;
    614import eu.clarin.cmdi.virtualcollectionregistry.gui.wizard.CreateVirtualCollectionWizard;
     15import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
    716
    817@AuthorizeInstantiation(Roles.USER)
     18@SuppressWarnings("serial")
    919public class CreateVirtualCollectionPage extends BasePage {
    1020
    1121    public CreateVirtualCollectionPage() {
    12         super();
    13         this.add(new CreateVirtualCollectionWizard("wizard"));
     22        this(new VirtualCollection(), null);
    1423    }
    15    
     24
     25    public CreateVirtualCollectionPage(VirtualCollection vc,
     26            final Page previousPage) {
     27        final CreateVirtualCollectionWizard wizard =
     28            new CreateVirtualCollectionWizard("wizard", vc) {
     29
     30            @Override
     31            protected void onCancelWizard() {
     32                // proceed to response page
     33                if (previousPage != null) {
     34                    setResponsePage(previousPage);
     35                } else {
     36                    setResponsePage(BrowsePrivateCollectionsPage.class);
     37                }
     38            }
     39
     40            @Override
     41            protected void onFinishWizard(VirtualCollection vc) {
     42                try {
     43                    VirtualCollectionRegistry vcr =
     44                        VirtualCollectionRegistry.instance();
     45                    ApplicationSession session =
     46                        (ApplicationSession) getSession();
     47                    Principal principal = session.getPrincipal();
     48                    if (principal == null) {
     49                        // XXX: security issue?
     50                        throw new WicketRuntimeException("principal == null");
     51                       
     52                    }
     53                    // FIXME: get date from GUI?
     54                    vc.setCreationDate(new Date());
     55                    vcr.createVirtualCollection(principal, vc);
     56                } catch (VirtualCollectionRegistryException e) {
     57                    // FIXME: handle error
     58                    e.printStackTrace();
     59                }
     60
     61                // proceed to response page
     62                if (previousPage != null) {
     63                    setResponsePage(previousPage);
     64                } else {
     65                    setResponsePage(BrowsePrivateCollectionsPage.class);
     66                }
     67            }
     68        };
     69        add(wizard);
     70    }
     71
    1672} // class CreateVirtualCollecionPage
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/webapp/css/vcr.css

    r904 r933  
    8181        margin: 0;
    8282        padding: 0;
    83         height: 22px;
     83        height: 20px;
    8484        clear: both;
    8585    color: #000000;
    8686    background-color: #D4DEEF;
    87     font-size: 14px;
     87    font-size: 12px;
     88    line-height: 12px;
     89    vertical-align: middle;
    8890}
    8991       
     
    108110    padding: 4px 8px;
    109111    width: auto;
    110     height: 14px;
    111     line-height: 14px;
     112    height: 12px;
    112113    text-align: center;
    113114    text-decoration: none;
     
    115116}
    116117
     118#menu ul li + #menu ul li {
     119        border-left: 1px solid black;
     120}
     121       
    117122#menu a, #menu a:active, #menu a:visited {
    118123        color: #000000;
     
    133138    padding: 4px 4px 4px 4px;
    134139    width: auto;
    135     height: 16px;
    136     line-height: 16px;
    137140}
    138141
     
    590593table td.action {
    591594        width: 98px;
     595        text-align: right;
    592596}
    593597
     
    665669table.collectionsTable {
    666670        width: 100%;
     671        margin-top: 5px;
     672}
     673
     674table.collectionsTable th,
     675table.collectionsTable td {
     676    vertical-align: top;
    667677}
    668678
     
    670680table.collectionsTable td.title {
    671681        width: 250px;
    672     vertical-align: top;
    673 }
     682}
     683
    674684
    675685table.collectionsTable th.type,
    676686table.collectionsTable td.type {
    677687    width: 85px;
    678     vertical-align: top;
    679688}
    680689
    681690table.collectionsTable th.description,
    682691table.collectionsTable td.description {
    683     width: 570px;
    684     vertical-align: top;
     692    width: 500px;
    685693}
    686694
     
    688696table.collectionsTable td.created {
    689697    width: 95px;
    690     vertical-align: top;
    691 }
     698}
     699
     700table.collectionsTable td.action {
     701        white-space: nowrap;
     702}
Note: See TracChangeset for help on using the changeset viewer.