/* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * 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 . */ package org.openoffice.xmerge.converter.xml.sxc; /** * This is a class to define a table-column structure. This can then be * used by plugins to write or read their own column types. * * @author Martin Maher */ public class ColumnRowInfo { final public static int COLUMN = 0x01; final public static int ROW = 0x02; final private static int DEFAULTROWSIZE_MIN = 250; final private static int DEFAULTROWSIZE_MAX = 260; private int type; private int dimension = 0; private int repeated = 1; private boolean userDefined = true; private Format fmt = new Format(); /** * Constructor for a ColumnRowInfo * * @param type whether ROW or COLUMN record . */ public ColumnRowInfo(int type) { this.type = type; } /** * Constructor for a ColumnRowInfo * * @param dimension if it's a row the height, a column the width. * @param repeated how many times it is repeated. * @param type whether ROW or COLUMN record. */ public ColumnRowInfo(int dimension, int repeated, int type) { this.dimension = dimension; this.repeated = repeated; this.type = type; } /** * Constructor for a ColumnRowInfo that includes userDefined * field. * * @param dimension if it's a row the height, a column the width. * @param repeated how many times it is repeated. * @param type whether ROW or COLUMN record. * @param userDefined whether the record is manually set. */ public ColumnRowInfo(int dimension, int repeated, int type, boolean userDefined) { this(dimension, repeated, type); this.userDefined = userDefined; } /** * Sets the format. * * @param fmt The new format to use. */ public void setFormat(Format fmt) { this.fmt = fmt; } /** * Get the current format. * * @return The current format. */ public Format getFormat() { return fmt; } /** * Get the height (for rows) or width (for columns). * * @return The height or width. */ public int getSize() { return dimension; } /** * Set the height (for rows) or width (for columns). * * @param dimension The height or width. */ public void setSize(int dimension) { this.dimension = dimension; } /** * Get the repeat count for this item. * * @return The number of times this item is repeated. */ public int getRepeated() { return repeated; } /** * Set the repeat count for this item. * * @param repeated The number of times this item is repeated. */ public void setRepeated(int repeated) { this.repeated = repeated; } /** * Does this ColumnRowInfo represent a row? * * @return True if a row, false if not. */ public boolean isRow() { if(type==ROW) return true; else return false; } /** * Does this ColumnRowInfo represent a column? * * @return True if a column, false if not. */ public boolean isColumn() { if(type==COLUMN) return true; else return false; } /** * Test if the row height as been set manually * * @return true if user defined otherwise false */ public boolean isUserDefined() { return userDefined; } /** * Test if the row height is default * * @return true if default otherwise false */ public boolean isDefaultSize() { if( type==ROW && dimension>DEFAULTROWSIZE_MIN && dimension