source: VirtualCollectionRegistry/tags/VirtualCollectionRegistry-0.4.0-alpha2/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/TooltipBehavior.java @ 5557

Last change on this file since 5557 was 5557, checked in by Twan Goosen, 10 years ago

tag for VCR alpha 2

File size: 3.0 KB
Line 
1package eu.clarin.cmdi.virtualcollectionregistry.gui;
2
3import org.apache.wicket.ResourceReference;
4import org.apache.wicket.markup.html.resources.JavascriptResourceReference;
5import org.apache.wicket.model.IModel;
6import org.odlabs.wiquery.core.behavior.WiQueryAbstractBehavior;
7import org.odlabs.wiquery.core.commons.WiQueryResourceManager;
8import org.odlabs.wiquery.core.javascript.JsQuery;
9import org.odlabs.wiquery.core.javascript.JsStatement;
10import org.odlabs.wiquery.core.options.DefaultOptionsRenderer;
11import org.odlabs.wiquery.core.options.IOptionsRenderer;
12import org.odlabs.wiquery.core.options.Options;
13
14/**
15 *
16 * @author twagoo
17 */
18public class TooltipBehavior extends WiQueryAbstractBehavior {
19
20    public static final ResourceReference QTIP_JAVASCRIPT_RESOURCE
21            = new JavascriptResourceReference(TooltipBehavior.class, "jquery.qtip-1.0.0-rc3.min.js");
22
23    private final IModel<String> tooltipModel;
24
25    public TooltipBehavior(IModel<String> tooltipModel) {
26        this.tooltipModel = tooltipModel;
27    }
28
29    @Override
30    public void contribute(WiQueryResourceManager wiQueryResourceManager) {
31        wiQueryResourceManager.addJavaScriptResource(QTIP_JAVASCRIPT_RESOURCE);
32    }
33
34    @Override
35    public JsStatement statement() {
36        return new JsQuery(getComponent()).$().chain("qtip", getOptions().getJavaScriptOptions());
37    }
38
39    public Options getOptions() {
40        final Options options = new Options();
41        options.setRenderer(optionsRenderer);
42        options.putString("content", tooltipModel);
43        options.put("show", getShowEvent());
44        options.put("hide", getHideEvent());
45        return options;
46    }
47
48    public String getShowEvent() {
49        return "mouseover";
50    }
51
52    public String getHideEvent() {
53        return "mouseout";
54    }
55
56    private final IOptionsRenderer optionsRenderer = new IOptionsRenderer() {
57
58        @Override
59        public void renderBefore(StringBuilder stringBuilder) {
60            DefaultOptionsRenderer.get().renderBefore(stringBuilder);
61        }
62
63        @Override
64        public CharSequence renderOption(String name, Object value, boolean isLast) {
65            final Object newValue;
66            if (value instanceof CharSequence) {
67                newValue = String.format("'%s'", value);
68            } else {
69                newValue = value;
70            }
71            return DefaultOptionsRenderer.get().renderOption(name, newValue, isLast);
72        }
73
74        @Override
75        public void renderAfter(StringBuilder stringBuilder) {
76            DefaultOptionsRenderer.get().renderAfter(stringBuilder);
77        }
78    };
79//
80//    private static class StringQuoteModel extends AbstractReadOnlyModel<String> {
81//
82//        private final IModel<String> wrappedModel;
83//
84//        public StringQuoteModel(IModel<String> wrappedModel) {
85//            this.wrappedModel = wrappedModel;
86//        }
87//
88//        @Override
89//        public String getObject() {
90//            return String.format("'%s'", wrappedModel.getObject());
91//        }
92//
93//    }
94
95}
Note: See TracBrowser for help on using the repository browser.