001/*
002 * (C) Copyright 2006-2008 Nuxeo SA (http://nuxeo.com/) and others.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *     http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 *
016 * Contributors:
017 *     troger
018 *
019 * $Id$
020 */
021
022package org.nuxeo.ecm.platform.annotations.gwt.client.view;
023
024import org.nuxeo.ecm.platform.annotations.gwt.client.controler.AnnotationController;
025import org.nuxeo.ecm.platform.annotations.gwt.client.view.i18n.TranslationConstants;
026
027import com.google.gwt.core.client.GWT;
028import com.google.gwt.event.dom.client.ClickEvent;
029import com.google.gwt.event.dom.client.ClickHandler;
030import com.google.gwt.user.client.ui.Composite;
031import com.google.gwt.user.client.ui.ToggleButton;
032
033/**
034 * @author <a href="mailto:troger@nuxeo.com">Thomas Roger</a>
035 */
036public class HideShowAnnotationsButton extends Composite {
037
038    public HideShowAnnotationsButton(final AnnotationController annotationController) {
039        final TranslationConstants translationConstants = GWT.create(TranslationConstants.class);
040        final ToggleButton button = new ToggleButton(translationConstants.showAnnotations(),
041                translationConstants.hideAnnotations());
042        button.setStyleName("annotation-hide-show-button");
043        button.setDown(annotationController.isAnnotationsVisible());
044        button.addClickHandler(new ClickHandler() {
045            @Override
046            public void onClick(ClickEvent event) {
047                if (button.isDown()) {
048                    showAnnotations();
049                } else {
050                    hideAnnotations();
051                }
052            }
053        });
054        initWidget(button);
055    }
056
057    private native void showAnnotations() /*-{
058                                          if (typeof top['showAnnotations'] != "undefined") {
059                                          top['showAnnotations']();
060                                          }
061                                          }-*/;
062
063    private native void hideAnnotations() /*-{
064                                          if (typeof top['hideAnnotations'] != "undefined") {
065                                          top['hideAnnotations']();
066                                          }
067                                          }-*/;
068
069}