extensions/net.sf.basedb.examples/trunk/resources/scripts/toolbar-buttons.js

Code
Comments
Other
Rev Date Author Line
2204 28 Jan 14 nicklas 1 /* 
2204 28 Jan 14 nicklas 2   Copyright (C) 2014 Nicklas Nordborg
2204 28 Jan 14 nicklas 3
2204 28 Jan 14 nicklas 4   This file is part of the Example Code Package for BASE.
2204 28 Jan 14 nicklas 5   Available at http://baseplugins.thep.lu.se/
2204 28 Jan 14 nicklas 6   BASE main site: http://base.thep.lu.se/
2204 28 Jan 14 nicklas 7   
2204 28 Jan 14 nicklas 8   This is free software; you can redistribute it and/or
2204 28 Jan 14 nicklas 9   modify it under the terms of the GNU General Public License
2204 28 Jan 14 nicklas 10   as published by the Free Software Foundation; either version 3
2204 28 Jan 14 nicklas 11   of the License, or (at your option) any later version.
2204 28 Jan 14 nicklas 12   
2204 28 Jan 14 nicklas 13   The software is distributed in the hope that it will be useful,
2204 28 Jan 14 nicklas 14   but WITHOUT ANY WARRANTY; without even the implied warranty of
2204 28 Jan 14 nicklas 15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2204 28 Jan 14 nicklas 16   GNU General Public License for more details.
2204 28 Jan 14 nicklas 17   
2204 28 Jan 14 nicklas 18   You should have received a copy of the GNU General Public License
2204 28 Jan 14 nicklas 19   along with BASE. If not, see <http://www.gnu.org/licenses/>.
2204 28 Jan 14 nicklas 20 */
2204 28 Jan 14 nicklas 21 var ExampleToolbarButtons = function()
2204 28 Jan 14 nicklas 22 {
2204 28 Jan 14 nicklas 23   var buttons = {};
2204 28 Jan 14 nicklas 24
2205 29 Jan 14 nicklas 25   /**
2205 29 Jan 14 nicklas 26     Executed once when the page is loaded. Typically
2205 29 Jan 14 nicklas 27     used to bind events to fixed control elements.
2205 29 Jan 14 nicklas 28   */
2204 28 Jan 14 nicklas 29   buttons.initPage = function()
2204 28 Jan 14 nicklas 30   {
2205 29 Jan 14 nicklas 31     // Bind event handlers to the toolbar buttons
2204 28 Jan 14 nicklas 32     Buttons.addClickHandler('more-info-button', buttons.showMoreInfo);
2204 28 Jan 14 nicklas 33     Buttons.addClickHandler('annotation-filter', buttons.annotationFilter);
2204 28 Jan 14 nicklas 34   }
2205 29 Jan 14 nicklas 35   
2205 29 Jan 14 nicklas 36   /**
2205 29 Jan 14 nicklas 37     An alternate approach to event binding. Usually used when the number
2205 29 Jan 14 nicklas 38     of elements on a page is not known and the initPage method is of limited use.
2205 29 Jan 14 nicklas 39     
2205 29 Jan 14 nicklas 40     This method is called once for every element with class="auto-init".
2205 29 Jan 14 nicklas 41     Check the autoInit parameter if something needs to be done.
2205 29 Jan 14 nicklas 42   */
2205 29 Jan 14 nicklas 43   buttons.initElements = function(element, autoInit)
2205 29 Jan 14 nicklas 44   {
2205 29 Jan 14 nicklas 45     if (autoInit == 'click-me')
2205 29 Jan 14 nicklas 46     {
2205 29 Jan 14 nicklas 47       Buttons.addClickHandler(element, buttons.clickMe);
2205 29 Jan 14 nicklas 48     }
2205 29 Jan 14 nicklas 49   }
2204 28 Jan 14 nicklas 50
2205 29 Jan 14 nicklas 51   buttons.clickMe = function(event)
2205 29 Jan 14 nicklas 52   {
2205 29 Jan 14 nicklas 53     var message = Data.get(event.currentTarget, 'message');
2205 29 Jan 14 nicklas 54     alert(message);
2205 29 Jan 14 nicklas 55   }
2205 29 Jan 14 nicklas 56   
2204 28 Jan 14 nicklas 57   buttons.showMoreInfo = function(event)
2204 28 Jan 14 nicklas 58   {
2204 28 Jan 14 nicklas 59     var itemType = Data.get(event.currentTarget, 'item-type');
2204 28 Jan 14 nicklas 60     var itemId = Data.get(event.currentTarget, 'item-id');
2204 28 Jan 14 nicklas 61     var url = Data.get(event.currentTarget, 'url');
2204 28 Jan 14 nicklas 62     url += '?ID='+App.getSessionId();
2204 28 Jan 14 nicklas 63     url += '&item_type=' + itemType;
2204 28 Jan 14 nicklas 64     url += '&item_id='+itemId;
2204 28 Jan 14 nicklas 65     Dialogs.openPopup(url, 'ItemInfo', 600, 400);
2204 28 Jan 14 nicklas 66   }
2204 28 Jan 14 nicklas 67   
2204 28 Jan 14 nicklas 68   buttons.annotationFilter = function(event)
2204 28 Jan 14 nicklas 69   {
2204 28 Jan 14 nicklas 70     var itemType = Data.get(event.currentTarget, 'item-type');
2204 28 Jan 14 nicklas 71     var url = Data.get(event.currentTarget, 'url');
2204 28 Jan 14 nicklas 72     url += '?ID='+App.getSessionId();
2204 28 Jan 14 nicklas 73     url += '&item_type=' + itemType;
2204 28 Jan 14 nicklas 74     Dialogs.openPopup(url, 'AnnotationFilter', 450, 300);
2204 28 Jan 14 nicklas 75   }
2204 28 Jan 14 nicklas 76   
2204 28 Jan 14 nicklas 77   return buttons;
2204 28 Jan 14 nicklas 78 }();
2204 28 Jan 14 nicklas 79
2205 29 Jan 14 nicklas 80 // Register the page and element initializer method with the BASE core
2204 28 Jan 14 nicklas 81 Doc.onLoad(ExampleToolbarButtons.initPage);
2205 29 Jan 14 nicklas 82 Doc.addElementInitializer(ExampleToolbarButtons.initElements);
2205 29 Jan 14 nicklas 83