001/*
002 * Copyright (c) 2005 Einar Pehrson
003 *
004 * This file is part of
005 * CleanSheets Extension for Style
006 *
007 * CleanSheets Extension for Style is free software; you can
008 * redistribute it and/or modify it under the terms of the GNU General Public
009 * License as published by the Free Software Foundation; either version 2 of
010 * the License, or (at your option) any later version.
011 *
012 * CleanSheets Extension for Style is distributed in the hope that
013 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
014 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
015 * See the GNU General Public License for more details.
016 *
017 * You should have received a copy of the GNU General Public License
018 * along with CleanSheets Extension for Style; if not, write to the
019 * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
020 * Boston, MA  02111-1307  USA
021 */
022package csheets.ext.style;
023
024import csheets.core.Cell;
025import csheets.core.Spreadsheet;
026import csheets.ext.Extension;
027import csheets.ext.style.ui.StyleUIExtension;
028import csheets.ui.ctrl.UIController;
029import csheets.ui.ext.UIExtension;
030
031/**
032 * The extension for style.
033 * @author Einar Pehrson
034 */
035public class StyleExtension extends Extension {
036
037        /** The name of the extension */
038        public static final String NAME = "Style";
039
040        /**
041         * Creates a new style extension.
042         */
043        public StyleExtension() {
044                super(NAME);
045        }
046
047        /**
048         * Makes the given spreadsheet stylable.
049         * @param spreadsheet the spreadsheet to extend
050         * @return a stylable spreadsheet
051         */
052        public StylableSpreadsheet extend(Spreadsheet spreadsheet) {
053                return new StylableSpreadsheet(spreadsheet);
054        }
055
056        /**
057         * Makes the given cell stylable.
058         * @param cell the cell to extend
059         * @return a stylable cell
060         */
061        public StylableCell extend(Cell cell) {
062                return new StylableCell(cell);
063        }
064
065        /**
066         * Returns a user interface extension for style.
067         * @param uiController the user interface controller
068         * @return a user interface extension for style
069         */
070        public UIExtension getUIExtension(UIController uiController) {
071                return new StyleUIExtension(this, uiController);
072        }
073}