Changeset 1011


Ignore:
Timestamp:
12/22/10 15:21:43 (13 years ago)
Author:
oschonef
Message:
  • add popup actions menu to private virtual collections table
  • CSS updates
Location:
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main
Files:
2 added
7 edited

Legend:

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

    r993 r1011  
    1818import eu.clarin.cmdi.virtualcollectionregistry.gui.ApplicationSession;
    1919import eu.clarin.cmdi.virtualcollectionregistry.gui.dialog.ConfirmationDialog;
     20import eu.clarin.cmdi.virtualcollectionregistry.gui.menu.AjaxLinkMenuItem;
     21import eu.clarin.cmdi.virtualcollectionregistry.gui.menu.AjaxPopupMenu;
    2022import eu.clarin.cmdi.virtualcollectionregistry.gui.table.VirtualCollectionTable;
    2123import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
     
    2527@SuppressWarnings("serial")
    2628public class BrowsePrivateCollectionsPage extends BasePage {
     29    private class ActionsColumn extends Panel {
     30        public ActionsColumn(String id, IModel<VirtualCollection> model) {
     31            super(id, model);
     32            setRenderBodyOnly(true);
     33
     34            final AjaxPopupMenu menu =
     35                new AjaxPopupMenu("menu", new Model<String>("[actions]"));
     36
     37            final AjaxLinkMenuItem<VirtualCollection> publishItem =
     38                new AjaxLinkMenuItem<VirtualCollection>(
     39                    new Model<String>("Publish"), model, "publish") {
     40                @Override
     41                protected void onClick(AjaxRequestTarget target,
     42                        IModel<VirtualCollection> model) {
     43                    doPublish(target, model.getObject());
     44                }
     45            };
     46            menu.add(publishItem);
     47
     48            final AjaxLinkMenuItem<VirtualCollection> editItem =
     49                new AjaxLinkMenuItem<VirtualCollection>(
     50                    new Model<String>("Edit"), model, "edit") {
     51                @Override
     52                protected void onClick(AjaxRequestTarget target,
     53                        IModel<VirtualCollection> model) {
     54                    doEdit(target, model.getObject());
     55                }
     56            };
     57            menu.add(editItem);
     58
     59            final AjaxLinkMenuItem<VirtualCollection> deleteItem =
     60                new AjaxLinkMenuItem<VirtualCollection>(
     61                    new Model<String>("Delete"), model, "delete") {
     62                @Override
     63                protected void onClick(AjaxRequestTarget target,
     64                        IModel<VirtualCollection> model) {
     65                    doDelete(target, model.getObject());
     66                }
     67            };
     68            menu.add(deleteItem);
     69
     70            final AjaxLinkMenuItem<VirtualCollection> detailsItem =
     71                new AjaxLinkMenuItem<VirtualCollection>(
     72                    new Model<String>("Details"), model, "details") {
     73                @Override
     74                protected void onClick(AjaxRequestTarget target,
     75                        IModel<VirtualCollection> model) {
     76                    doDetails(target, model);
     77                }
     78            };
     79            menu.add(detailsItem);
     80            add(menu);
     81           
     82            final VirtualCollection vc = model.getObject();
     83            if (vc.isDeleted()) {
     84                detailsItem.setVisible(false).setEnabled(false);
     85            }
     86            if (!vc.isPrivate()) {
     87                editItem.setVisible(false).setEnabled(false);
     88                publishItem.setVisible(false).setEnabled(false);
     89                deleteItem.setVisible(false).setEnabled(false);
     90            }
     91        }
     92    }
     93
    2794    private class ActionsPanel extends Panel {
    2895        public ActionsPanel(String id, IModel<VirtualCollection> model) {
     
    66133            add(detailsLink);
    67134
    68             VirtualCollection vc = model.getObject();
     135            final VirtualCollection vc = model.getObject();
    69136            if (vc.isDeleted()) {
    70137                detailsLink.setVisible(false).setEnabled(false);
     
    142209        final VirtualCollectionTable table =
    143210            new VirtualCollectionTable("collectionsTable", true) {
    144                 @Override
    145                 protected Panel createActionPanel(String componentId,
    146                         IModel<VirtualCollection> model) {
    147                     return new ActionsPanel(componentId, model);
    148                 }
     211            @Override
     212            protected Panel createActionColumn(String componentId,
     213                    IModel<VirtualCollection> model) {
     214                return new ActionsColumn(componentId, model);
     215            }
     216
     217            @Override
     218            protected Panel createActionPanel(String componentId,
     219                    IModel<VirtualCollection> model) {
     220                return new ActionsPanel(componentId, model);
     221            }
    149222        };
    150223        add(table);
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/BrowsePublicCollectionsPage.java

    r993 r1011  
    3232            new VirtualCollectionTable("collectionsTable", false) {
    3333                @Override
     34                protected Panel createActionColumn(String componentId,
     35                        IModel<VirtualCollection> model) {
     36                    return new ActionsPanel(componentId, model);
     37                }
     38
     39                @Override
    3440                protected Panel createActionPanel(String componentId,
    3541                        IModel<VirtualCollection> model) {
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/ColumnActions.java

    r976 r1011  
    2020    public void populateItem(Item<ICellPopulator<VirtualCollection>> item,
    2121            String componentId, IModel<VirtualCollection> model) {
    22         item.add(table.createActionPanel(componentId, model));
     22        item.add(table.createActionColumn(componentId, model));
    2323    }
    2424
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/ColumnName$ItemCell.html

    r1004 r1011  
    1010    <div wicket:id="details" class="details">
    1111      <div wicket:id="desc" class="desc"></div>
    12       <ul style="list-style: none; margin: 0; padding: 0;">
    13         <li style="display: inline"><a href="#">[Display]</a></li>
    14         <li style="display: inline"><a href="#">[Action1]</a></li>
    15         <li style="display: inline"><a href="#">[Action2]</a></li>
    16       </ul>
     12      <div class="actions">
     13        <div wicket:id="actionsPanel"></div>
     14      </div>
    1715    </div>
    1816  </div>
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/ColumnName.java

    r1004 r1011  
    2323    private static final ResourceReference JAVASCRIPT_RESOURCE =
    2424        new ResourceReference(ColumnName.class, "ColumnName.js");
    25 
     25    private final VirtualCollectionTable table;
     26   
    2627    private final class ItemCell extends Panel implements IWiQueryPlugin {
    2728        private final WebMarkupContainer nameColumn;
     
    4445            }
    4546            details.add(descLabel);
     47            details.add(table.createActionPanel("actionsPanel", model));
     48
    4649            // move to css?
    4750            details.add(new AttributeAppender("style",
     
    6568    ColumnName(VirtualCollectionTable table) {
    6669        super(new ResourceModel("column.name", "Name"), "name");
     70        this.table = table;
    6771    }
    6872
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/VirtualCollectionTable.java

    r987 r1011  
    44import java.util.List;
    55
     6import org.apache.wicket.behavior.AttributeAppender;
    67import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
    78import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxNavigationToolbar;
     
    910import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
    1011import org.apache.wicket.markup.html.panel.Panel;
     12import org.apache.wicket.model.AbstractReadOnlyModel;
    1113import org.apache.wicket.model.IModel;
    1214import org.apache.wicket.model.Model;
     
    1820public abstract class VirtualCollectionTable extends Panel {
    1921
    20     public VirtualCollectionTable(String id, boolean privateMode) {
     22    public VirtualCollectionTable(String id, final boolean privateMode) {
    2123        super(id);
    2224        setOutputMarkupId(true);
     
    3840            new AjaxFallbackDefaultDataTable<VirtualCollection>("table",
    3941                columns, provider, 30);
     42        table.add(new AttributeAppender("class",
     43                new AbstractReadOnlyModel<String>() {
     44                    @Override
     45                    public String getObject() {
     46                        return privateMode ? "private" : "public";
     47                    }
     48                }, " "));
    4049        table.addBottomToolbar(new AjaxNavigationToolbar(table));
    4150
     
    5059    }
    5160
     61    protected abstract Panel createActionColumn(String componentId,
     62            IModel<VirtualCollection> model);
     63
    5264    protected abstract Panel createActionPanel(String componentId,
    5365            IModel<VirtualCollection> model);
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/webapp/css/vcr.css

    r981 r1011  
    685685}
    686686
    687 table.collectionsTable th.name,
    688 table.collectionsTable td.name {
    689         width: 670px;
     687table.collectionsTable.public th.name,
     688table.collectionsTable.public td.name {
     689        width: 796px;
     690}
     691
     692table.collectionsTable.private th.name,
     693table.collectionsTable.private td.name {
     694    width: 736px;
    690695}
    691696
     
    699704    background-repeat: no-repeat;
    700705    background-position: center left;
     706    cursor: pointer;
    701707}
    702708
     
    722728}
    723729
     730table.collectionsTable td.name div.actions {
     731        margin-top: 4px;
     732}
     733
     734table.collectionsTable th.state,
     735table.collectionsTable td.state {
     736    width: 60px;
     737}
     738
     739table.collectionsTable th.type,
     740table.collectionsTable td.type {
     741    width: 80px;
     742}
     743
    724744table.collectionsTable th.created,
    725745table.collectionsTable td.created {
    726     width: 100px;
    727 }
    728 
    729 table.collectionsTable th.type,
    730 table.collectionsTable td.type {
    731     width: 100px;
     746    width: 80px;
    732747}
    733748
    734749table.collectionsTable td.action,
    735750table.collectionsTable th.action {
    736         width: 100px;
     751        width: 12px;
     752}
     753
     754table.collectionsTable.public td.action span,
     755table.collectionsTable.private td.action div.popupTrigger span {
     756    display: none;
     757}
     758
     759table.collectionsTable.public td.action a {
     760    display: block;
     761    width: 12px;
     762    height: 12px;
     763    margin-right: 2px;
     764    background: transparent url('../icons/magnifier.png') no-repeat center center;
     765}
     766
     767table.collectionsTable.private td.action div.popupTrigger {
     768    display: block;
     769    width: 12px;
     770    height: 12px;
     771    margin-right: 2px;
     772    background: transparent url('../icons/wrench.png') no-repeat center center;
    737773}
    738774
     
    765801    background-repeat: no-repeat;
    766802    background-position: center left;
     803    cursor: pointer;
    767804}
    768805
     
    805842        width: 790px;
    806843}
     844
     845div.popupMenu {
     846    -moz-box-shadow: 3px 3px 3px #888;
     847    -webkit-box-shadow: 3px 3px 3px #888;
     848    box-shadow: 3px 3px 3px #888;
     849    -moz-border-radius: 4px;
     850    border-radius: 4px;
     851}
     852
     853div.popupMenu li a {
     854        color: #000000;
     855}
     856
     857div.popupMenu li a:hover {
     858    color: #AE0000;
     859}
     860
     861div.popupTrigger span.title {
     862    color: #AE0000;
     863}
Note: See TracChangeset for help on using the changeset viewer.