/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * */ package org.apache.directory.studio.templateeditor.model.widgets; import java.util.ArrayList; import java.util.List; /** * This class implements an abstract widget for templates. * * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a> */ public abstract class AbstractTemplateWidget implements TemplateWidget { /** The parent element*/ private TemplateWidget parent; /** The children list */ private List<TemplateWidget> children; /** The attribute type the widget is associated with */ private String attributeType; /** How the widget is positioned horizontally */ private WidgetAlignment horizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT; /** How the widget is positioned vertically */ private WidgetAlignment verticalAlignment = DEFAULT_VERTICAL_ALIGNMENT; /** * The flag to know whether the widget will be made wide * enough to fit the remaining horizontal space. */ private boolean grabExcessHorizontalSpace = DEFAULT_GRAB_EXCESS_HORIZONTAL_SPACE; /** * The flag to know whether the widget will be made wide * enough to fit the remaining vertical space. */ private boolean grabExcessVerticalSpace = DEFAULT_GRAB_EXCESS_VERTICAL_SPACE; /** The number of columns that the widget will take up */ private int horizontalSpan = DEFAULT_HORIZONTAL_SPAN; /** The number of rows that the widget will take up */ private int verticalSpan = DEFAULT_VERTICAL_SPAN; /** The preferred width */ private int width = DEFAULT_SIZE; /** The preferred height*/ private int height = DEFAULT_SIZE; /** * Creates a new instance of AbstractTemplateWidget. * * @param parent * the parent element */ public AbstractTemplateWidget( TemplateWidget parent ) { this.parent = parent; children = new ArrayList<TemplateWidget>(); if ( parent != null ) { parent.addChild( this ); } } /** * {@inheritDoc} */ public boolean addChild( TemplateWidget widget ) { return children.add( widget ); } /** * {@inheritDoc} */ public String getAttributeType() { return attributeType; } /** * {@inheritDoc} */ public List<TemplateWidget> getChildren() { return children; } /** * {@inheritDoc} */ public int getImageHeight() { return height; } /** * {@inheritDoc} */ public WidgetAlignment getHorizontalAlignment() { return horizontalAlignment; } /** * {@inheritDoc} */ public int getHorizontalSpan() { return horizontalSpan; } /** * {@inheritDoc} */ public TemplateWidget getParent() { return parent; } /** * {@inheritDoc} */ public WidgetAlignment getVerticalAlignment() { return verticalAlignment; } /** * {@inheritDoc} */ public int getVerticalSpan() { return verticalSpan; } /** * {@inheritDoc} */ public int getImageWidth() { return width; } /** * {@inheritDoc} */ public boolean hasChildren() { return children.size() > 0; } /** * {@inheritDoc} */ public boolean isGrabExcessHorizontalSpace() { return grabExcessHorizontalSpace; } /** * {@inheritDoc} */ public boolean isGrabExcessVerticalSpace() { return grabExcessVerticalSpace; } /** * {@inheritDoc} */ public void setAttributeType( String attributeType ) { this.attributeType = attributeType; } /** * {@inheritDoc} */ public void setGrabExcessHorizontalSpace( boolean grabExcessHorizontalSpace ) { this.grabExcessHorizontalSpace = grabExcessHorizontalSpace; } /** * {@inheritDoc} */ public void setGrabExcessVerticalSpace( boolean grabExcessVerticalSpace ) { this.grabExcessVerticalSpace = grabExcessVerticalSpace; } /** * {@inheritDoc} */ public void setImageHeight( int height ) { this.height = height; } /** * {@inheritDoc} */ public void setHorizontalAlignment( WidgetAlignment horizontalAlignment ) { this.horizontalAlignment = horizontalAlignment; } /** * {@inheritDoc} */ public void setHorizontalSpan( int horizontalSpan ) { this.horizontalSpan = horizontalSpan; } /** * {@inheritDoc} */ public void setVerticalAlignment( WidgetAlignment verticalAlignment ) { this.verticalAlignment = verticalAlignment; } /** * {@inheritDoc} */ public void setVerticalSpan( int verticalSpan ) { this.verticalSpan = verticalSpan; } /** * {@inheritDoc} */ public void setImageWidth( int width ) { this.width = width; } }