001/* 002 * (C) Copyright 2006-2007 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 * Jean-Marc Orliaguet, Chalmers 018 * 019 * $Id$ 020 */ 021 022package org.nuxeo.theme.fragments; 023 024import java.util.List; 025 026import org.nuxeo.theme.Manager; 027import org.nuxeo.theme.elements.AbstractElement; 028import org.nuxeo.theme.models.Model; 029import org.nuxeo.theme.models.ModelException; 030import org.nuxeo.theme.perspectives.PerspectiveManager; 031import org.nuxeo.theme.perspectives.PerspectiveType; 032 033public abstract class AbstractFragment extends AbstractElement implements Fragment { 034 035 public abstract Model getModel() throws ModelException; 036 037 private FragmentType fragmentType; 038 039 public void setFragmentType(FragmentType fragmentType) { 040 this.fragmentType = fragmentType; 041 } 042 043 public FragmentType getFragmentType() { 044 return fragmentType; 045 } 046 047 public boolean isVisibleInPerspective(PerspectiveType perspective) { 048 return Manager.getPerspectiveManager().isVisibleInPerspective(this, perspective); 049 } 050 051 public void setVisibleInPerspective(PerspectiveType perspective) { 052 PerspectiveManager.setVisibleInPerspective(this, perspective); 053 } 054 055 public void setAlwaysVisible() { 056 Manager.getPerspectiveManager().setAlwaysVisible(this); 057 } 058 059 public List<PerspectiveType> getVisibilityPerspectives() { 060 return Manager.getPerspectiveManager().getPerspectivesFor(this); 061 } 062 063 public boolean isDynamic() { 064 return fragmentType.isDynamic(); 065 } 066 067}