ShowJCRStructureActionComponent.java

  1. /*
  2.  * Copyright (C) 2003-2009 eXo Platform SAS.
  3.  *
  4.  * This program is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU Affero General Public License
  6.  * as published by the Free Software Foundation; either version 3
  7.  * of the License, or (at your option) any later version.
  8.  *
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  * GNU General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program; if not, see<http://www.gnu.org/licenses/>.
  16.  */
  17. package org.exoplatform.ecm.webui.component.explorer.control.action;

  18. import java.util.Arrays;
  19. import java.util.List;

  20. import org.exoplatform.ecm.jcr.model.Preference;
  21. import org.exoplatform.ecm.webui.component.explorer.UIJCRExplorer;
  22. import org.exoplatform.ecm.webui.component.explorer.control.filter.IsNotEditingDocumentFilter;
  23. import org.exoplatform.ecm.webui.component.explorer.control.listener.UIActionBarActionListener;
  24. import org.exoplatform.webui.config.annotation.ComponentConfig;
  25. import org.exoplatform.webui.config.annotation.EventConfig;
  26. import org.exoplatform.webui.core.UIComponent;
  27. import org.exoplatform.webui.event.Event;
  28. import org.exoplatform.webui.ext.filter.UIExtensionFilter;
  29. import org.exoplatform.webui.ext.filter.UIExtensionFilters;

  30. /**
  31.  * Created by The eXo Platform SAS
  32.  * Author : eXoPlatform
  33.  *          nicolas.filotto@exoplatform.com
  34.  * 6 mai 2009
  35.  */
  36. @ComponentConfig(
  37.      events = {
  38.        @EventConfig(listeners = ShowJCRStructureActionComponent.ShowJCRStructureActionListener.class)
  39.      }
  40.  )
  41. public class ShowJCRStructureActionComponent extends UIComponent {

  42.   private static final List<UIExtensionFilter> FILTERS = Arrays.asList(new UIExtensionFilter[]{new IsNotEditingDocumentFilter()});

  43.   @UIExtensionFilters
  44.   public List<UIExtensionFilter> getFilters() {
  45.     return FILTERS;
  46.   }

  47.   public static class ShowJCRStructureActionListener extends UIActionBarActionListener<ShowJCRStructureActionComponent> {
  48.     public void processEvent(Event<ShowJCRStructureActionComponent> event) throws Exception {
  49.       UIJCRExplorer uiJCRExplorer = event.getSource().getAncestorOfType(UIJCRExplorer.class);
  50.       Preference pref = uiJCRExplorer.getPreference();
  51.       if(uiJCRExplorer.getPreference().isJcrEnable()) pref.setJcrEnable(false);
  52.       else pref.setJcrEnable(true);
  53.       uiJCRExplorer.refreshExplorer();
  54.     }
  55.   }
  56. }