source: extensions/net.sf.basedb.examples/trunk/META-INF/extensions.xml @ 4336

Last change on this file since 4336 was 4336, checked in by Nicklas Nordborg, 6 years ago

Changes for future release Example code 1.9

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Id
File size: 23.7 KB
Line 
1<?xml version="1.0" encoding="UTF-8" ?>
2<!--
3  Copyright (C) 2011 Nicklas Nordborg
4
5  This file is part of the Example Code Package for BASE.
6  Available at http://baseplugins.thep.lu.se/
7  BASE main site: http://base.thep.lu.se/
8 
9  This is free software; you can redistribute it and/or
10  modify it under the terms of the GNU General Public License
11  as published by the Free Software Foundation; either version 3
12  of the License, or (at your option) any later version.
13 
14  The software is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  GNU General Public License for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with BASE. If not, see <http://www.gnu.org/licenses/>.
21-->
22<extensions xmlns="http://base.thep.lu.se/extensions.xsd"
23  id-base="net.sf.basedb.examples.extensions.">
24  <about safe-scripts="1">
25    <name>Extensions example package</name>
26    <description>
27      This package contains several simple example extensions.
28      Most of them are variants of the well-known "Hello world"
29      code example.
30    </description>
31    <version>1.9-dev</version>
32    <min-base-version>3.10.0</min-base-version>
33    <copyright>BASE development team</copyright>
34    <url>http://baseplugins.thep.lu.se/wiki/net.sf.basedb.examples.extensions</url>
35    <email>basedb-users@lists.sourceforge.net</email>
36  </about>
37 
38  <plugin-definition id="ExampleAnalyzer">
39    <about>
40      <name>Example: Copy spot intensity</name>
41      <description>
42        An example analysis plugin that creates a new bioassay set
43        by multiplying each intensitity value with the same factor,
44        filtering out intensities below a cutoff value.
45      </description>
46    </about>
47    <plugin-class>net.sf.basedb.examples.plugins.ExampleAnalyzer</plugin-class>
48  </plugin-definition>
49 
50  <plugin-definition id="ExampleImporter">
51    <about>
52      <name>Example: sample importer</name>
53      <description>
54        An example plugin that pretends to import samples.
55        It can't be configured, but will ask for a file to
56        import from and if existing samples should be updated
57        or not. It won't actually import any samples, but
58        will report that a few samples has been imported.
59      </description>
60    </about>
61    <plugin-class>net.sf.basedb.examples.plugins.ExampleImporter</plugin-class>
62  </plugin-definition>
63 
64  <extension-point
65    id="custom-extension-point"
66    >
67    <action-class>net.sf.basedb.examples.extensions.custom.ExampleAction</action-class>
68    <name>Example extension point</name>
69    <description>
70      An example of custom extension point defined within an extension package.
71      Use the menu entry "Hello world examples-&gt;Example actions" to list all
72      extensions that are implementing this extension point. There should be
73      at least one extension that is defined by this package. Other extensions
74      may use this extension point to verify that it is possible to extend
75      custom extension points.
76    </description>
77  </extension-point>
78 
79  <extension
80    id="menu.helloworld"
81    extends="net.sf.basedb.clients.web.menu.extensions"
82    >
83    <index>0</index>
84    <action-factory>
85      <factory-class>
86        net.sf.basedb.clients.web.extensions.menu.FixedMenuItemFactory
87      </factory-class>
88      <parameters>
89        <type>SUBMENU</type>
90        <submenuId>hello</submenuId>
91        <title>Hello world examples!</title>
92        <tooltip>Find all examples here</tooltip>
93        <icon>/images/info.png</icon>
94      </parameters>
95    </action-factory>
96  </extension>
97  <extension
98    id="menu.helloworldsimple"
99    extends="net.sf.basedb.clients.web.menu.extensions"
100    >
101    <index>1</index>
102    <about>
103      <name>Hello world</name>
104      <description>
105        The very first extensions example. Adds a "Hello world"
106        menu item that displays "Hello world" in a javascript
107        popup when selected.
108      </description>
109    </about>
110    <action-factory>
111      <factory-class>
112        net.sf.basedb.clients.web.extensions.menu.FixedMenuItemFactory
113      </factory-class>
114      <parameters>
115        <id>hello-world</id>
116        <menuId>hello</menuId>
117        <title>Hello world!</title>
118        <tooltip>This is to test the extensions system</tooltip>
119        <icon>/images/info.png</icon>
120        <script>~/scripts/menu-items.js</script>
121      </parameters>
122    </action-factory>
123  </extension>
124 
125  <extension
126    id="menu.helloworldfactory"
127    extends="net.sf.basedb.clients.web.menu.extensions"
128    >
129    <index>2</index>
130    <about>
131      <name>Hello factory world</name>
132      <description>
133        A "Hello world" variant with a custom action factory.
134        Everything is hard-coded into the factory.
135      </description>
136    </about>
137    <action-factory>
138      <factory-class>
139        net.sf.basedb.examples.extensions.menu.HelloWorldFactory
140      </factory-class>
141      <parameters>
142        <id>hello-factory-world</id>
143        <script>~/scripts/menu-items.js</script>
144      </parameters>
145    </action-factory>
146  </extension>
147 
148  <extension
149    id="menu.hellouser"
150    extends="net.sf.basedb.clients.web.menu.extensions"
151    >
152    <index>3</index>
153    <about>
154      <name>Greetings user</name>
155      <description>
156        A "Hello world" variant with a custom action factory
157        that displays "Greetings {name of user}" instead. We also
158        make the icon configurable.
159      </description>
160    </about>
161    <action-factory>
162      <factory-class>
163        net.sf.basedb.examples.extensions.menu.HelloUserFactory
164      </factory-class>
165      <parameters>
166        <id>greetings-user</id>
167        <prefix>Greetings</prefix>
168        <icon>/images/take_ownership.png</icon>
169        <script>~/scripts/menu-items.js</script>
170      </parameters>
171    </action-factory>
172  </extension>
173
174  <extension
175    id="menu.hellojspworld"
176    extends="net.sf.basedb.clients.web.menu.extensions"
177    >
178    <index>4</index>
179    <about>
180      <name>Hello JSP world</name>
181      <description>
182        This example uses a custom JSP page to display the
183        "Hello world" message instead of a javascript popup.
184        We use data-url and data-popup to specify the URL and
185        name+size of popup window. No custom event binding is needed
186        since data-url is supported natively by BASE.
187      </description>
188    </about>
189    <action-factory>
190      <factory-class>
191        net.sf.basedb.clients.web.extensions.menu.FixedMenuItemFactory
192      </factory-class>
193      <parameters>
194        <id>hello-jsp-world</id>
195        <menuId>hello</menuId>
196        <title>Hello JSP world!</title>
197        <tooltip>Opens a JSP page with the message</tooltip>
198        <data-url>$HOME$/hello_world.jsp?ID=$SESSION-ID$</data-url>
199        <data-popup>HelloJspWorld, 450, 300</data-popup>
200        <icon>~/images/world.png</icon>
201      </parameters>
202    </action-factory>
203  </extension>
204  <extension
205    id="menu.helloxjspworld"
206    extends="net.sf.basedb.clients.web.menu.extensions"
207    >
208    <index>5</index>
209    <about>
210      <name>Hello X-JSP world</name>
211      <description>
212        This example uses a custom X-JSP page to display the
213        "Hello world" message instead of a javascript popup.
214        An X-JSP file is a JSP file that has access to classes in
215        the extension's JAR file. NOTE! This example requires that
216        the XJSP compiler is installed on the server.
217      </description>
218    </about>
219    <action-factory>
220      <factory-class>
221        net.sf.basedb.clients.web.extensions.menu.FixedMenuItemFactory
222      </factory-class>
223      <parameters>
224        <id>hello-xjsp-world</id>
225        <menuId>hello</menuId>
226        <title>Hello X-JSP world!</title>
227        <tooltip>Opens a X-JSP page with the message</tooltip>
228        <data-url>$HOME$/hello_world.xjsp?ID=$SESSION-ID$</data-url>
229        <data-popup>HelloXJspWorld, 450, 300</data-popup>
230        <icon>~/images/xworld.png</icon>
231      </parameters>
232    </action-factory>
233  </extension>
234  <extension
235    id="menu.helloservletworld"
236    extends="net.sf.basedb.clients.web.menu.extensions"
237    >
238    <index>6</index>
239    <about>
240      <name>Hello Servlet world</name>
241      <description>
242        This example uses a custom Servlet page to display the
243        "Hello world" message instead of a javascript popup.
244      </description>
245    </about>
246    <action-factory>
247      <factory-class>
248        net.sf.basedb.clients.web.extensions.menu.FixedMenuItemFactory
249      </factory-class>
250      <parameters>
251        <id>hello-servlet-world</id>
252        <menuId>hello</menuId>
253        <title>Hello Servlet world!</title>
254        <tooltip>Opens a Servlet generated page with the message</tooltip>
255        <data-url>$HOME$/HelloWorld/with/some/path-info.servlet?ID=$SESSION-ID$</data-url>
256        <data-popup>HelloServletWorld, 450, 300</data-popup>
257        <icon>~/images/servlet.png</icon>
258      </parameters>
259    </action-factory>
260  </extension>
261  <extension
262    id="menu.helloservletworld2"
263    extends="net.sf.basedb.clients.web.menu.extensions"
264    >
265    <index>7</index>
266    <about>
267      <name>Hello Servlet world (alternate)</name>
268      <description>
269        This example uses a custom Servlet page to display the
270        "Hello world" message instead of a javascript popup.
271        The difference from the above menu is that this uses an
272        alternate path to the servlet.
273      </description>
274    </about>
275    <action-factory>
276      <factory-class>
277        net.sf.basedb.clients.web.extensions.menu.FixedMenuItemFactory
278      </factory-class>
279      <parameters>
280        <id>hello-servlet-world-2</id>
281        <menuId>hello</menuId>
282        <title>Hello Servlet world (alternate)!</title>
283        <tooltip>Opens a Servlet generated page with the message</tooltip>
284        <data-url>$SERVLET_HOME$/HelloWorld/with/other/path?ID=$SESSION-ID$</data-url>
285        <data-popup>HelloServletWorld2, 450, 300</data-popup>
286        <icon>~/images/servlet.png</icon>
287      </parameters>
288    </action-factory>
289  </extension>
290  <extension
291    id="menu.exampleactions"
292    extends="net.sf.basedb.clients.web.menu.extensions"
293    >
294    <index>8</index>
295    <about>
296      <name>Example actions</name>
297      <description>
298        List all extensions extending the custom extension point:
299        net.sf.basedb.examples.extensions.extension-point
300      </description>
301    </about>
302    <action-factory>
303      <factory-class>
304        net.sf.basedb.clients.web.extensions.menu.FixedMenuItemFactory
305      </factory-class>
306      <parameters>
307        <id>hello-example-actions</id>
308        <menuId>hello</menuId>
309        <title>Example actions</title>
310        <tooltip>List all example actions</tooltip>
311        <data-url>$HOME$/ExampleActions.servlet?ID=$SESSION-ID$</data-url>
312        <data-popup>ExampleActions, 900, 600</data-popup>
313        <icon>~/images/servlet.png</icon>
314      </parameters>
315    </action-factory>
316  </extension>
317 
318  <extension
319    id="toolbar.iteminfo"
320    extends="net.sf.basedb.clients.web.toolbar.item.all"
321    >
322    <index>1</index>
323    <about>
324      <name>Show item info</name>
325      <description>
326        This example creates a toolbar button on all single-item
327        pages that opens a JSP page that displays some information
328        about the item.
329      </description>
330    </about>
331    <action-factory>
332      <factory-class>
333        net.sf.basedb.examples.extensions.toolbar.InfoButtonFactory
334      </factory-class>
335      <parameters>
336        <id>more-info-button</id>
337        <title>More info...</title>
338        <tooltip>Show some information about $NAME</tooltip>
339        <icon>/images/info.png</icon>
340        <script>~/scripts/toolbar-buttons.js</script>
341        <data-url>$HOME$/item_info.jsp</data-url>
342      </parameters>
343    </action-factory>
344
345  </extension>
346  <extension
347    id="toolbar.filterselected"
348    extends="net.sf.basedb.clients.web.toolbar.list.annotatable"
349    >
350    <index>1</index>
351    <about>
352      <name>Annotation filter</name>
353      <description>
354        This example creates a toolbar button that can apply a
355        special filter for showing only items that has been
356        annotated or only items that has no annotations.
357      </description>
358    </about>
359    <action-factory>
360      <factory-class>
361        net.sf.basedb.examples.extensions.toolbar.InfoButtonFactory
362      </factory-class>
363      <parameters>
364        <id>annotation-filter</id>
365        <title>Annotation filter...</title>
366        <tooltip>Filter items based on if they have been annotated or not</tooltip>
367        <icon>/images/filter.png</icon>
368        <script>~/scripts/toolbar-buttons.js</script>
369        <data-url>$HOME$/filter_annotated.jsp</data-url>
370      </parameters>
371    </action-factory>
372  </extension>
373  <extension
374    id="toolbar.clickme"
375    extends="net.sf.basedb.clients.web.toolbar.list.all"
376    >
377    <index>2</index>
378    <about>
379      <name>Click me!</name>
380      <description>
381        Click the button!
382      </description>
383    </about>
384    <action-factory>
385      <factory-class>
386        net.sf.basedb.clients.web.extensions.toolbar.FixedButtonFactory
387      </factory-class>
388      <parameters>
389        <clazz>auto-init button</clazz>
390        <data-auto-init>click-me</data-auto-init>
391        <title>Click me!</title>
392        <tooltip>Come on! Do it!</tooltip>
393        <data-message>Ouch!</data-message>
394        <icon>/images/info.png</icon>
395        <script>~/scripts/toolbar-buttons.js</script>
396      </parameters>
397    </action-factory>
398  </extension>
399  <extension
400    id="history-edit"
401    >
402    <extends>
403      <ref index="2">net.sf.basedb.clients.web.tabcontrol.edit.sample</ref>
404      <ref index="2">net.sf.basedb.clients.web.tabcontrol.edit.extract</ref>
405    </extends>
406    <about>
407      <name>History file (edit)</name>
408      <description>
409        Adds an extra tab to the "Edit sample/extract" dialogs, were the user may
410        select a "History file" (whatever that is!) that is linked
411        with an any-to-any link to the item. This action also need the
412        'history-save' action to save the link.
413      </description>
414    </about>
415    <action-factory>
416      <factory-class>
417        net.sf.basedb.clients.web.extensions.tabcontrol.IncludeContentTabFactory
418      </factory-class>
419      <parameters>
420        <id>history-file</id>
421        <title>History file</title>
422        <tooltip>On this form you can link the item with it's history file!</tooltip>
423        <include>~/history_file.jsp</include>
424      </parameters>
425    </action-factory>
426  </extension>
427
428  <extension
429    id="history-save"
430    >
431    <extends>
432      <ref index="2">net.sf.basedb.clients.web.onsave.sample</ref>
433      <ref index="2">net.sf.basedb.clients.web.onsave.extract</ref>
434    </extends>
435    <about>
436      <name>History file (save)</name>
437      <description>
438        Saves an any-to-any link between a sample/extract and it's history file.
439        The history file is set in an extra tab in the "Edit sample/extract"
440        dialogs that is controlled by the 'history-edit' extension.
441      </description>
442    </about>
443    <action-factory>
444      <factory-class>
445        net.sf.basedb.examples.extensions.edit.HistoryOnSaveActionFactory
446      </factory-class>
447    </action-factory>
448  </extension>
449
450  <extension
451    id="onsave.lastupdatedby"
452    extends="net.sf.basedb.clients.web.onsave.all"
453    >
454    <index>3</index>
455    <about>
456      <name>Last updated by</name>
457      <description>
458        Creates an any-to-any link between any item and the currently logged in user
459        when that item is edited and saved in the web interface.
460      </description>
461    </about>
462    <action-factory>
463      <factory-class>
464        net.sf.basedb.examples.extensions.edit.LastUpdatedByOnSaveActionFactory
465      </factory-class>
466    </action-factory>
467  </extension>
468
469  <extension
470    id="list.owner-registration-date"
471    extends="net.sf.basedb.clients.web.listcolumn.ownable"
472    >
473    <index>1</index>
474    <about>
475      <name>Owner registration date</name>
476      <description>
477        Add a column to the list page of all ownable items that display
478        the registration date of the owner of the item.
479      </description>
480    </about>
481    <action-factory>
482      <factory-class>
483        net.sf.basedb.clients.web.extensions.list.PropertyPathActionFactory
484      </factory-class>
485      <parameters>
486        <id>owner.entryDate</id>
487        <title>Owner registration date</title>
488        <property>owner.entryDate</property>
489        <valueType>DATE</valueType>
490      </parameters>
491    </action-factory>
492  </extension>
493 
494  <extension
495    id="list.owner-email"
496    extends="net.sf.basedb.clients.web.listcolumn.ownable"
497    >
498    <index>2</index>
499    <about>
500      <name>Owner email</name>
501      <description>
502        Add a column to the list page of all ownable items that display
503        the owner's email address.
504      </description>
505    </about>
506    <action-factory>
507      <factory-class>
508        net.sf.basedb.clients.web.extensions.list.PropertyPathActionFactory
509      </factory-class>
510      <parameters>
511        <id>owner.email</id>
512        <title>Owner email</title>
513        <property>owner.email</property>
514        <valueType>STRING</valueType>
515        <formatterClass>net.sf.basedb.clients.web.formatter.NiceFormatter</formatterClass>
516        <exportFormatterClass>net.sf.basedb.examples.formatter.ToUpperCaseFormatter</exportFormatterClass>
517      </parameters>
518    </action-factory>
519  </extension>
520 
521  <extension
522    id="list.rawbioassay-data-files"
523    extends="net.sf.basedb.clients.web.listcolumn.rawbioassay"
524    >
525    <index>10</index>
526    <about>
527      <name>Data files</name>
528      <description>
529        Adds a column to the rawbioassays list that display data files attached to
530        each raw bioassay.
531      </description>
532    </about>
533    <action-factory>
534      <factory-class>
535        net.sf.basedb.examples.extensions.list.DataFilesActionFactory
536      </factory-class>
537    </action-factory>
538  </extension>
539 
540  <extension
541    id="list.extra-id"
542    extends="net.sf.basedb.clients.web.listcolumn.all"
543    >
544    <index>99</index>
545    <about>
546      <name>Extra id</name>
547      <description>
548        Add an extra id column to all lists. Useful for
549        testing that the extension system is working.
550      </description>
551    </about>
552    <action-factory>
553      <factory-class>
554        net.sf.basedb.clients.web.extensions.list.PropertyPathActionFactory
555      </factory-class>
556      <parameters>
557        <id>xid</id>
558        <title>XID</title>
559        <property>id</property>
560        <valueType>INT</valueType>
561      </parameters>
562    </action-factory>
563  </extension>
564
565  <extension 
566    id="loader.user"
567    extends="net.sf.basedb.util.overview.loader">
568    <index>1</index>
569    <about>
570      <name>Owner of item</name>
571      <description>
572        Load the owner of each item as a property
573        node in the item overview.
574      </description>
575    </about>
576    <action-factory>
577      <factory-class>
578        net.sf.basedb.examples.extensions.overview.OwnerNodeLoaderFactory
579      </factory-class>
580    </action-factory>
581  </extension>
582
583  <extension 
584    id="validator.user"
585    extends="net.sf.basedb.util.overview.validator">
586    <index>1</index>
587    <about>
588      <name>Check the owner of an item</name>
589      <description>
590        This validator check the following things:
591        * Missing and denied access to the owner of an item
592        * That an URL has been specified for the user and has a valid syntax
593      </description>
594    </about>
595    <action-factory>
596      <factory-class>
597        net.sf.basedb.examples.extensions.overview.OwnerValidatorFactory
598      </factory-class>
599    </action-factory>
600  </extension>
601 
602  <extension
603    id="validationrule.missing-owner"
604    extends="net.sf.basedb.util.overview.validationrule">
605    <index>1</index>
606    <about>
607      <name>Missing owner</name>
608      <description>
609        Checks if an owner has been set for an item. Can't really happen
610        since an owner is always set by the core API.
611      </description>
612    </about>
613    <action-factory>
614      <factory-class>
615        net.sf.basedb.util.overview.extensions.ReflectValidationRuleActionFactory
616      </factory-class>
617      <parameters>
618        <field>net.sf.basedb.examples.extensions.overview.OwnerValidator.MISSING_OWNER</field>
619      </parameters>
620    </action-factory>
621  </extension>
622 
623  <extension
624    id="validationrule.denied-owner"
625    extends="net.sf.basedb.util.overview.validationrule">
626    <index>2</index>
627    <about>
628      <name>Access denied to owner</name>
629      <description>Checks if the user is denied access to the owner of an item.</description>
630    </about>
631    <action-factory>
632      <factory-class>
633        net.sf.basedb.util.overview.extensions.ReflectValidationRuleActionFactory
634      </factory-class>
635      <parameters>
636        <field>net.sf.basedb.examples.extensions.overview.OwnerValidator.DENIED_OWNER</field>
637      </parameters>
638    </action-factory>
639  </extension>
640 
641  <extension
642    id="validationrule.missing-url"
643    extends="net.sf.basedb.util.overview.validationrule">
644    <index>3</index>
645    <about>
646      <name>Missing URL</name>
647      <description>Check that an URL has been set for a user</description>
648    </about>
649    <action-factory>
650      <factory-class>
651        net.sf.basedb.util.overview.extensions.ReflectValidationRuleActionFactory
652      </factory-class>
653      <parameters>
654        <field>net.sf.basedb.examples.extensions.overview.OwnerValidator.MISSING_URL</field>
655      </parameters>
656    </action-factory>
657  </extension>
658
659  <extension
660    id="validationrule.invalid-url"
661    extends="net.sf.basedb.util.overview.validationrule">
662    <index>4</index>
663    <about>
664      <name>Invalid URL</name>
665      <description>Checks if an URL has a valid syntax.</description>
666    </about>
667    <action-factory>
668      <factory-class>
669        net.sf.basedb.util.overview.extensions.ReflectValidationRuleActionFactory
670      </factory-class>
671      <parameters>
672        <field>net.sf.basedb.examples.extensions.overview.OwnerValidator.INVALID_URL</field>
673      </parameters>
674    </action-factory>
675  </extension>
676
677  <extension 
678    id="loader.role"
679    extends="net.sf.basedb.util.overview.loader">
680    <index>2</index>
681    <about>
682      <name>Role membership</name>
683      <description>
684        Load the role membership of users as a folder-node with one item-node
685        for each role.
686      </description>
687    </about>
688    <action-factory>
689      <factory-class>
690        net.sf.basedb.examples.extensions.overview.RoleNodeLoaderFactory
691      </factory-class>
692    </action-factory>
693  </extension>
694
695  <extension 
696    id="validator.role"
697    extends="net.sf.basedb.util.overview.validator">
698    <index>2</index>
699    <about>
700      <name>Check the role membership of a user</name>
701      <description>
702        This validator check the following things:
703        * The the user is a member of at least one role
704      </description>
705    </about>
706    <action-factory>
707      <factory-class>
708        net.sf.basedb.examples.extensions.overview.RoleValidatorFactory
709      </factory-class>
710    </action-factory>
711  </extension>
712
713  <extension
714    id="validationrule.missing-role"
715    extends="net.sf.basedb.util.overview.validationrule">
716    <index>5</index>
717    <about>
718      <name>Missing role</name>
719      <description>Checks if a user is a member of at least one role.</description>
720    </about>
721    <action-factory>
722      <factory-class>
723        net.sf.basedb.util.overview.extensions.ReflectValidationRuleActionFactory
724      </factory-class>
725      <parameters>
726        <field>net.sf.basedb.examples.extensions.overview.RoleValidator.MISSING_ROLE</field>
727      </parameters>
728    </action-factory>
729  </extension>
730
731  <extension
732    id="overview.info"
733    extends="net.sf.basedb.clients.web.overview.info-details"
734    >
735    <index>1</index>
736    <about>
737      <name>Overview information</name>
738      <description>
739        This example adds a section to the information pane in
740        the "Item overview" functionality. It will display some
741        generic information about the current item.
742      </description>
743    </about>
744    <action-factory>
745      <factory-class>
746        net.sf.basedb.examples.extensions.overview.InfoSectionFactory
747      </factory-class>
748      <parameters>
749        <id>example.moreInformation</id>
750        <title>More information</title>
751        <include>~/overview_info.jsp</include>
752      </parameters>
753    </action-factory>
754  </extension>
755 
756  <extension 
757    id="logging.stdout"
758    extends="net.sf.basedb.core.log-manager"
759    >
760    <about>
761      <name>Stdout log manager</name>
762      <description>
763        A simple log manager that writes logging information to stdout. It
764        uses the core database logger for collecting the log information.
765      </description>
766    </about>
767    <index>1</index>
768    <action-factory>
769      <factory-class>net.sf.basedb.examples.extensions.log.StdoutLogMangerFactory</factory-class>
770    </action-factory>
771  </extension>
772 
773  <extension
774    id="pink-panther"
775    extends="net.sf.basedb.clients.web.global-skin"
776    >
777    <about>
778      <name>Pink Panther Skin</name>
779      <description>
780        An example skin that replaces the BASE logo and some other
781        images with a "pink panther" variant and makes some other changes.
782      </description>
783    </about>
784    <action-factory>
785      <factory-class>
786        net.sf.basedb.clients.web.extensions.skin.FixedSkinActionFactory
787      </factory-class>
788      <parameters>
789        <id>examples</id>
790        <stylesheet>~/pink-panther/skin.css</stylesheet>
791        <script>~/pink-panther/skin.js</script>
792        <image-remap-dir>/pink-panther</image-remap-dir>
793      </parameters>
794    </action-factory>
795  </extension>
796 
797  <extension
798    id="example-action-1"
799    extends="net.sf.basedb.examples.extensions.custom-extension-point"
800    >
801    <about>
802      <name>Example action</name>
803      <description>
804        One example of an action extending the custom extension
805        point.
806      </description>
807    </about>
808    <action-factory>
809      <factory-class>
810        net.sf.basedb.examples.extensions.custom.ExampleActionFactory
811      </factory-class>
812      <parameters>
813        <name>Example action #1</name>
814      </parameters>
815    </action-factory>
816  </extension>
817
818</extensions>
Note: See TracBrowser for help on using the repository browser.