001/* 002 * This library is part of OpenCms - 003 * the Open Source Content Management System 004 * 005 * Copyright (c) Alkacon Software GmbH & Co. KG (http://www.alkacon.com) 006 * 007 * This library is free software; you can redistribute it and/or 008 * modify it under the terms of the GNU Lesser General Public 009 * License as published by the Free Software Foundation; either 010 * version 2.1 of the License, or (at your option) any later version. 011 * 012 * This library is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 015 * Lesser General Public License for more details. 016 * 017 * For further information about Alkacon Software GmbH & Co. KG, please see the 018 * company website: http://www.alkacon.com 019 * 020 * For further information about OpenCms, please see the 021 * project website: http://www.opencms.org 022 * 023 * You should have received a copy of the GNU Lesser General Public 024 * License along with this library; if not, write to the Free Software 025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 026 */ 027 028package org.opencms.widgets; 029 030import org.opencms.i18n.CmsMessages; 031 032import java.util.Locale; 033import java.util.Set; 034 035/** 036 * Describes a widget enabled dialog.<p> 037 * 038 * @since 6.0.0 039 */ 040public interface I_CmsWidgetDialog { 041 042 /** 043 * Generates a button for the widget dialog.<p> 044 * 045 * @param href the href link for the button, if none is given the button will be disabled 046 * @param target the href link target for the button, if none is given the target will be same window 047 * @param image the image name for the button, skin path will be automattically added as prefix 048 * @param label the label for the text of the button 049 * @param type 0: image only (default), 1: image and text, 2: text only 050 * 051 * @return a button for the OpenCms workplace 052 * 053 * @see org.opencms.workplace.CmsWorkplace#button(String, String, String, String, int) 054 */ 055 String button(String href, String target, String image, String label, int type); 056 057 /** 058 * Returns the html for a button bar.<p> 059 * 060 * @param segment the HTML segment (START / END) 061 * 062 * @return a button bar html start / end segment 063 */ 064 String buttonBar(int segment); 065 066 /** 067 * Generates a horizontal button bar separator line with maximum width.<p> 068 * 069 * @return a horizontal button bar separator line 070 */ 071 String buttonBarHorizontalLine(); 072 073 /** 074 * Generates a button bar separator.<p> 075 * 076 * @param leftPixel the amount of pixel left to the separator 077 * @param rightPixel the amount of pixel right to the separator 078 * 079 * @return a button bar separator 080 */ 081 String buttonBarSeparator(int leftPixel, int rightPixel); 082 083 /** 084 * Returns the html for an invisible spacer between button bar contents like buttons, labels, etc.<p> 085 * 086 * @param width the width of the invisible spacer 087 * @return the html for the invisible spacer 088 * 089 * @see org.opencms.workplace.CmsWorkplace#buttonBarSpacer(int) 090 */ 091 String buttonBarSpacer(int width); 092 093 /** 094 * Generates a button bar starter tab.<p> 095 * 096 * @param leftPixel the amount of pixel left to the starter 097 * @param rightPixel the amount of pixel right to the starter 098 * 099 * @return a button bar starter tab 100 */ 101 String buttonBarStartTab(int leftPixel, int rightPixel); 102 103 /** 104 * Builds an invisible horiziontal spacer with the specified width.<p> 105 * 106 * @param width the width of the spacer in pixels 107 * @return an invisible horiziontal spacer with the specified width 108 * 109 * @see org.opencms.workplace.CmsDialog#dialogHorizontalSpacer(int) 110 */ 111 String dialogHorizontalSpacer(int width); 112 113 /** 114 * Returns the style setting to use when generating buttons for this widget dialog.<p> 115 * 116 * @return the style setting to use when generating buttons for this widget dialog 117 * 118 * @see org.opencms.db.CmsUserSettings#getEditorButtonStyle() 119 */ 120 int getButtonStyle(); 121 122 /** 123 * Returns a set of help messages ids that are already included on the widget dialog.<p> 124 * 125 * This is used to prevent the occurence of multiple html <code>div</code> id's with the same 126 * value when generating the help texts. For valid html, each id can be used only once.<p> 127 * 128 * @return a set of help messages ids that are already included on the widget dialog 129 */ 130 Set<String> getHelpMessageIds(); 131 132 /** 133 * Returns the current users locale setting.<p> 134 * 135 * @return the current users locale setting 136 * 137 * @see org.opencms.workplace.CmsWorkplace#getLocale() 138 * @see org.opencms.file.CmsRequestContext#getLocale() 139 */ 140 Locale getLocale(); 141 142 /** 143 * Returns a messages object used to render localized keys for the widget dialog.<p> 144 * 145 * @return a messages object used to render localized keys for the widget dialog 146 */ 147 CmsMessages getMessages(); 148 149 /** 150 * Returns the "user-agent" of the current request, or <code>null</code> in case no 151 * request is available.<p> 152 * 153 * @return the "user-agent" of the current request 154 */ 155 String getUserAgent(); 156 157 /** 158 * Tests if we are working with the new administration dialog style.<p> 159 * 160 * This param is not intended for external use.<p> 161 * 162 * @return <code>true</code> if using the new style 163 */ 164 boolean useNewStyle(); 165}