Changeset 1019


Ignore:
Timestamp:
12/23/10 14:43:21 (13 years ago)
Author:
oschonef
Message:
  • move translations for virtual collection enum types to Application.properties
  • show correct (human readable) values to enum types on virtual collections details page
  • add CSS to virtual collections details page
Location:
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main
Files:
6 edited

Legend:

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

    r933 r1019  
     1State.PUBLIC: public
     2State.PUBLIC_PENDING: publishing
     3State.PRIVATE: private
     4State.DELETED: deleted
     5State.DEAD: dead
     6Type.EXTENSIONAL: extensional
     7Type.INTENSIONAL: intensional
     8Purpose.RESEARCH: research
     9Purpose.REFERENCE: reference
     10Purpose.SAMPLE: sample
     11Purpose.FUTURE_USE: future-use
     12Reproducibility.INTENDED: intended
     13Reproducibility.FLUCTUATING: fluctuating
     14Reproducibility.UNTENDED: untended
     15Type.METADATA: Metadata
     16Type.RESOURCE: Resource
    117collections.publishconfirm: Do you really want to publish "${name}"?\nThe \
    218  virtual collection will then be publicly available and you will not be able \
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/VirtualCollectionDetailsPage.html

    r1002 r1019  
    88<wicket:extend>
    99  <div wicket:id="generalBorder">
    10     <div>
     10    <div class="property">
    1111      <label>Name</label>
    1212      <div wicket:id="name"></div>
    1313    </div>
    14     <div>
     14    <div class="property">
    1515       <label>Type</label>
    1616       <div wicket:id="type"></div>
    1717    </div>
    18     <div>
     18    <div class="property">
    1919      <label>Creation Date</label>
    2020      <div wicket:id="creationDate"></div>
    2121    </div>
    2222    <wicket:enclosure child="description">
    23       <div>
     23      <div class="property">
    2424        <label>Description</label>
    2525        <div wicket:id="description"></div>
     
    2727    </wicket:enclosure>
    2828    <wicket:enclosure child="purpose">
    29       <div>
     29      <div class="property">
    3030        <label>Purpose</label>
    3131        <div wicket:id="purpose"></div>
     
    3333    </wicket:enclosure>
    3434    <wicket:enclosure child="reproducibility">
    35       <div>
     35      <div class="property">
    3636        <label>Reproducibility</label>
    3737        <div wicket:id="reproducibility"></div>
     
    3939    </wicket:enclosure>
    4040    <wicket:enclosure child="reproducibilityNotice">
    41       <div>
     41      <div class="property">
    4242        <label>Reproducibility Notice</label>
    4343        <div wicket:id="reproducibilityNotice"></div>
     
    4545    </wicket:enclosure>
    4646    <wicket:enclosure child="keywords">
    47       <div>
     47      <div class="property">
    4848        <label>Keywords</label>
    4949        <div>
    50           <ul><li wicket:id="keywords"><span wicket:id="keyword"></span></li></ul>
     50          <ul class="keywords"><li wicket:id="keywords"><span wicket:id="keyword"></span></li></ul>
    5151        </div>
    5252      </div>
     
    5555
    5656  <div wicket:id="creatorsBorder">
    57     <ul>
     57    <ul class="creators">
    5858      <li wicket:id="creators">
    59         <div>
     59        <div class="property">
    6060          <label>Person</label>
    6161          <div wicket:id="person"></div>
    6262        </div>
    6363        <wicket:enclosure child="address">
    64           <div>
     64          <div class="property">
    6565            <label>Address</label>
    6666            <div wicket:id="address"></div>
     
    6868        </wicket:enclosure>
    6969        <wicket:enclosure child="email">
    70           <div>
     70          <div class="property">
    7171            <label>Email</label>
    7272            <div wicket:id="email"></div>
     
    7474        </wicket:enclosure>
    7575        <wicket:enclosure child="organisation">
    76           <div>
     76          <div class="property">
    7777            <label>Organisation</label>
    7878            <div wicket:id="organisation"></div>
     
    8080        </wicket:enclosure>
    8181        <wicket:enclosure child="telephone">
    82           <div>
     82          <div class="property">
    8383            <label>Telephone</label>
    8484            <div wicket:id="telephone"></div>
     
    8686        </wicket:enclosure>
    8787        <wicket:enclosure child="website">
    88           <div>
     88          <div class="property">
    8989            <label>Website</label>
    9090            <div><a wicket:id="website"></a></div>
     
    9292        </wicket:enclosure>
    9393        <wicket:enclosure child="role">
    94           <div>
     94          <div class="property">
    9595            <label>Role</label>
    9696            <div wicket:id="role"></div>
     
    106106
    107107  <div wicket:id="generatedByBorder">
    108     <div>
     108    <div class="property">
    109109      <label>Description</label>
    110110      <div wicket:id="generatedBy.description"></div>
    111111    </div>
    112112    <wicket:enclosure child="generatedBy.uri">
    113       <div>
     113      <div class="property">
    114114        <label>URI</label>
    115115        <div wicket:id="generatedBy.uri"></div>
     
    117117    </wicket:enclosure>
    118118    <wicket:enclosure child="generatedBy.query.profile">
    119       <div>
     119      <div class="property">
    120120        <label>Profile</label>
    121121        <div wicket:id="generatedBy.query.profile"></div>
     
    123123    </wicket:enclosure>
    124124    <wicket:enclosure child="generatedBy.query.value">
    125       <div>
     125      <div class="property">
    126126        <label>Value</label>
    127127        <div wicket:id="generatedBy.query.value"></div>
     
    130130  </div>
    131131
    132   <a wicket:id="back" href="#">[return to previous page]</a>
     132  <div class="collectionDetails buttons">
     133    <a wicket:id="back" href="#">[return to previous page]</a>
     134  </div>
    133135</wicket:extend>
    134136</body>
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/VirtualCollectionDetailsPage.java

    r1001 r1019  
    11package eu.clarin.cmdi.virtualcollectionregistry.gui.pages;
    22
    3 import java.util.ArrayList;
     3import java.sql.Date;
    44import java.util.Collection;
    55import java.util.Iterator;
    66import java.util.LinkedList;
    77import java.util.List;
    8 
     8import java.util.Locale;
     9
     10import org.apache.commons.lang.time.FastDateFormat;
     11import org.apache.wicket.Application;
    912import org.apache.wicket.Component;
    1013import org.apache.wicket.Page;
    1114import org.apache.wicket.behavior.AbstractBehavior;
    1215import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
     16import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
    1317import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
    1418import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
    1519import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
    1620import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
     21import org.apache.wicket.markup.ComponentTag;
    1722import org.apache.wicket.markup.html.basic.Label;
    1823import org.apache.wicket.markup.html.basic.MultiLineLabel;
     
    2328import org.apache.wicket.markup.html.list.ListItem;
    2429import org.apache.wicket.markup.html.list.ListView;
     30import org.apache.wicket.markup.html.list.OddEvenListItem;
     31import org.apache.wicket.markup.repeater.Item;
    2532import org.apache.wicket.model.ComponentPropertyModel;
    2633import org.apache.wicket.model.CompoundPropertyModel;
    2734import org.apache.wicket.model.IModel;
    2835import org.apache.wicket.model.Model;
     36import org.apache.wicket.util.convert.IConverter;
     37import org.apache.wicket.util.string.Strings;
    2938
    3039import eu.clarin.cmdi.virtualcollectionregistry.gui.border.AjaxToggleBorder;
     
    3746@SuppressWarnings("serial")
    3847public class VirtualCollectionDetailsPage extends BasePage {
    39     private static final String CSS_CLASS = "collectionsDetails";
     48    private static final IConverter convEnum = new IConverter() {
     49        @Override
     50        public String convertToString(Object o, Locale locale) {
     51            final Enum<?> enumObj = (Enum<?>) o;
     52            final String key =
     53                enumObj.getDeclaringClass().getSimpleName() + "." +
     54                enumObj.name();
     55            final String value = Application.get().getResourceSettings()
     56                    .getLocalizer().getString(key, null);
     57            return Strings.escapeMarkup(value).toString();
     58        }
     59
     60        @Override
     61        public Object convertToObject(String s, Locale locale) {
     62            return null;
     63        }
     64    };
     65    private static final IConverter convDate = new IConverter() {
     66        @Override
     67        public String convertToString(Object o, Locale locale) {
     68            return FastDateFormat.getInstance("yyyy-MM-dd")
     69                .format((Date) o);
     70        }
     71
     72        @Override
     73        public Object convertToObject(String s, Locale locale) {
     74            return null;
     75        }
     76    };
     77    private static final String CSS_CLASS = "collectionDetails";
    4078
    4179    /*
     
    74112            components.clear();
    75113        }
    76     }
     114    } // class VirtualCollectionDetailsPage.HideIfEmptyBehavior
     115   
     116    private static class CustomLabel extends Label {
     117
     118        public CustomLabel(String id) {
     119            super(id);
     120        }
     121
     122        @Override
     123        public IConverter getConverter(Class<?> type) {
     124            if (VirtualCollection.Type.class.isAssignableFrom(type) ||
     125                VirtualCollection.Purpose.class.isAssignableFrom(type) ||
     126                VirtualCollection.Reproducibility.class.isAssignableFrom(type)) {
     127                return convEnum;
     128            }
     129            if (Date.class.isAssignableFrom(type)) {
     130                return convDate;
     131            }
     132            return super.getConverter(type);
     133        }
     134    } // class VirtualCollectionDetailsPage.TypeLabel
    77135
    78136   
    79137    private final HideIfEmptyBehavior hideIfEmpty = new HideIfEmptyBehavior();
    80138
    81 
     139   
    82140    public VirtualCollectionDetailsPage(final IModel<VirtualCollection> model,
    83141            final Page previousPage) {
     
    98156        add(general);
    99157        general.add(new Label("name"));
    100         general.add(new Label("type"));
    101         general.add(new Label("creationDate"));
     158        general.add(new CustomLabel("type"));
     159        general.add(new CustomLabel("creationDate"));
    102160        general.add(new MultiLineLabel("description").add(hideIfEmpty));
    103         general.add(new Label("purpose").add(hideIfEmpty));
    104         general.add(new Label("reproducibility").add(hideIfEmpty));
     161        general.add(new CustomLabel("purpose").add(hideIfEmpty));
     162        general.add(new CustomLabel("reproducibility").add(hideIfEmpty));
    105163        general.add(new Label("reproducibilityNotice").add(hideIfEmpty));
    106164        final ListView<String> keywords = new ListView<String>("keywords") {
     
    138196                return new CompoundPropertyModel<Creator>(creators.get(index));
    139197            }
     198
     199            @Override
     200            protected ListItem<Creator> newItem(int index) {
     201                final IModel<Creator> model =
     202                    getListItemModel(getModel(), index);
     203                return new OddEvenListItem<Creator>(index, model) {
     204                    @Override
     205                    protected void onComponentTag(ComponentTag tag) {
     206                        super.onComponentTag(tag);
     207                        if (getIndex() == 0) {
     208                            tag.append("class", "first", " ");
     209                        }
     210                    }
     211                };
     212            }
    140213        });
    141214
    142215        final Border resources = new AjaxToggleBorder("resourcesBorder",
    143                 new Model<String>("Resources"), CSS_CLASS);
     216                new Model<String>("Resources"), CSS_CLASS + " resources");
    144217        add(resources);
    145218       
    146219        final VirtualCollection vc = model.getObject();
    147         final List<IColumn<Resource>> cols = new ArrayList<IColumn<Resource>>();
    148        
    149         cols.add(new PropertyColumn<Resource>(new Model<String>("Type"), "type"));
    150         cols.add(new PropertyColumn<Resource>(new Model<String>("Reference"), "ref"));
    151 
     220        @SuppressWarnings("rawtypes")
     221        final IColumn[] cols = new IColumn[2];
     222        cols[0] = new PropertyColumn<Resource>(
     223                new Model<String>("Type"), "type") {
     224            @Override
     225            public void populateItem(Item<ICellPopulator<Resource>> item,
     226                    String componentId, IModel<Resource> model) {
     227                final Resource.Type type = model.getObject().getType();
     228                item.add(new Label(componentId,
     229                        convEnum.convertToString(type, getLocale())));
     230            }
     231        };
     232        cols[1] = new PropertyColumn<Resource>(
     233                new Model<String>("Reference"), "ref");
     234
     235        @SuppressWarnings("unchecked")
    152236        final DataTable<Resource> resourcesTable =
    153237            new AjaxFallbackDefaultDataTable<Resource>("resourcesTable",
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/VirtualCollectionTable.properties

    r981 r1019  
    44column.description: Description
    55column.created: Created
    6 Type.EXTENSIONAL: extensional
    7 Type.INTENSIONAL: intensional
    8 State.PUBLIC: public
    9 State.PUBLIC_PENDING: publishing
    10 State.PRIVATE: private
    11 State.DELETED: deleted
    12 State.DEAD: dead
    136Relation.LT: less-than
    147Relation.LE: less-than or equals
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/wizard/CreateVirtualCollectionWizard.properties

    r906 r1019  
    1 Type.EXTENSIONAL: extensional
    2 Type.INTENSIONAL: intensional
    3 Purpose.RESEARCH: research
    4 Purpose.REFERENCE: reference
    5 Purpose.SAMPLE: sample
    6 Purpose.FUTURE_USE: future-use
    7 Reproducibility.INTENDED: intended
    8 Reproducibility.FLUCTUATING: fluctuating
    9 Reproducibility.UNTENDED: untended
    10 Type.METADATA: Metadata
    11 Type.RESOURCE: Resource
    121keywords.deleteconfirm: Do you really want to delete "{0}"?
    132creators.deleteconfirm: Do you really want to delete "${person}"?
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/webapp/css/vcr.css

    r1015 r1019  
    213213}
    214214
    215 form.wizard fieldset, div.wizard div.fieldset {
     215form.wizard fieldset,
     216div.wizard div.fieldset {
    216217  clear: both;
    217218  font-size: 100%;
     
    250251*/
    251252
    252 form.wizard div, div.editDialog div {
     253form.wizard div,
     254div.editDialog div {
    253255  clear: left;
    254256  display: block;
     
    304306  margin: 0 0 5px 0;
    305307  text-align: right;
    306 }
    307 
    308 div.optional label{
    309308  font-weight: normal;
    310309}
    311310
    312 div.required label, label.required {
    313   font-weight: bold;
     311div.required label,
     312label.required {
     313  font-weight: bold !important;
    314314}
    315315
     
    692692table.collectionsTable.private th.name,
    693693table.collectionsTable.private td.name {
    694     width: 736px;
     694    width: 732px;
    695695}
    696696
     
    731731
    732732table.collectionsTable td.name div.actions {
    733         margin: 4px 0;
     733        margin: 4px 0 2px 0;
    734734}
    735735
     
    864864    color: #AE0000;
    865865}
     866
     867
     868div.collectionDetails div.property {
     869  clear: both;
     870  font-size: 100%;
     871  border: none;
     872  padding: 0 10px 0 10px;
     873  margin: 0 0 4px 0;
     874}
     875
     876div.collectionDetails div label {
     877  display: block;
     878  float: left;
     879  width: 140px;
     880  padding: 0px 2px;
     881  margin: 0;
     882  text-align: right;
     883  font-weight: normal;
     884}
     885
     886div.collectionDetails div label:after {
     887        content: ':';
     888}
     889
     890div.collectionDetails div div {
     891    display: block;
     892    clear: none;
     893    padding: 0px 2px;
     894    margin-left: 144px;
     895}
     896
     897div.collectionDetails ul.keywords {
     898    margin: 0 0 0 16px;
     899    padding: 0;
     900    list-style: square;
     901}
     902
     903div.collectionDetails ul.creators {
     904        margin: 0;
     905        padding: 0;
     906    list-style: none;
     907}
     908
     909div.collectionDetails ul.creators li {
     910        border-top: 1px dotted #000000;
     911    margin-top: 4px;
     912    padding-top: 4px;
     913}
     914
     915div.collectionDetails ul.creators li.first {
     916        border-top: none;
     917        margin-top: 0;
     918        padding-top: 0;
     919}
     920
     921div.collectionDetails.resources {
     922        padding: 0 !important;
     923}
     924
     925div.collectionDetails.resources table {
     926        width: 100%;
     927}
     928
     929div.collectionDetails.buttons {
     930        margin: 10px 0 10px 0;
     931        text-align: center;
     932}
     933
Note: See TracChangeset for help on using the changeset viewer.