1 /* 2 * Copyright 2004-2008 the Seasar Foundation and the Others. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 13 * either express or implied. See the License for the specific language 14 * governing permissions and limitations under the License. 15 */ 16 package org.seasar.uruma.rcp.configuration.elements; 17 18 import org.eclipse.ui.IPerspectiveFactory; 19 import org.seasar.uruma.annotation.ConfigurationAttribute; 20 import org.seasar.uruma.component.rcp.PerspectiveComponent; 21 import org.seasar.uruma.rcp.configuration.ConfigurationElement; 22 23 /** 24 * <code>perspective</code> 要素のための {@link ConfigurationElement} です。<br /> 25 * 26 * @author y-komori 27 * @see <a 28 * href="http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/reference/extension-points/org_eclipse_ui_perspectives.html#e.perspective">perspective</a> 29 */ 30 public class PerspectiveElement extends AbstractConfigurationElement { 31 /** 32 * 要素名です。<br /> 33 */ 34 public static final String ELEMENT_NAME = "perspective"; 35 36 /** 37 * {@link PerspectiveElement} を構築します。<br /> 38 */ 39 public PerspectiveElement() { 40 super(); 41 } 42 43 /** 44 * {@link PerspectiveComponent} を元にして {@link PerspectiveElement} を構築します。<br /> 45 */ 46 public PerspectiveElement(final PerspectiveComponent component) { 47 super(); 48 this.id = createRcpId(component.id); 49 this.name = component.name; 50 this.icon = component.icon; 51 this.clazz = component.clazz; 52 this.fixed = Boolean.getBoolean(component.fixed); 53 } 54 55 /** 56 * ID です。<br /> 57 */ 58 @ConfigurationAttribute(required = true) 59 public String id; 60 61 /** 62 * パースペクティブの名称です。<br /> 63 */ 64 @ConfigurationAttribute(required = true) 65 public String name; 66 67 /** 68 * {@link IPerspectiveFactory} を実装したクラスのフルネームです。<br /> 69 */ 70 @ConfigurationAttribute(name = "class", required = true) 71 public String clazz; 72 73 /** 74 * アイコンのパスです。<br /> 75 */ 76 @ConfigurationAttribute 77 public String icon; 78 79 /** 80 * <code>true</code> の場合、パースペクティブのレイアウトを固定します。<br /> 81 */ 82 @ConfigurationAttribute 83 public boolean fixed; 84 }