summaryrefslogtreecommitdiff
path: root/wizards/com/sun/star/wizards/web/IconsDialog.java
diff options
context:
space:
mode:
Diffstat (limited to 'wizards/com/sun/star/wizards/web/IconsDialog.java')
-rw-r--r--wizards/com/sun/star/wizards/web/IconsDialog.java208
1 files changed, 208 insertions, 0 deletions
diff --git a/wizards/com/sun/star/wizards/web/IconsDialog.java b/wizards/com/sun/star/wizards/web/IconsDialog.java
new file mode 100644
index 000000000000..6228180a75f4
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/IconsDialog.java
@@ -0,0 +1,208 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package com.sun.star.wizards.web;
+
+import javax.swing.ListModel;
+
+import com.sun.star.awt.Size;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.wizards.common.ConfigSet;
+import com.sun.star.wizards.common.FileAccess;
+import com.sun.star.wizards.ui.ImageList;
+import com.sun.star.wizards.web.data.CGIconSet;
+
+/**
+ * @author rpiterman
+ * The dialog class for choosing an icon set.
+ * This class simulates a model, though it does not functions really as one,
+ * since it does not cast events.
+ * It also implements the ImageList.ImageRenderer interface, to handle
+ * its own objects.
+ */
+public class IconsDialog extends ImageListDialog implements ImageList.IImageRenderer, ListModel
+{
+
+ private ConfigSet set;
+ String htmlexpDirectory;
+ /**
+ * this icons filename prefixes are used to display the icons.
+ */
+ private String[] icons = new String[]
+ {
+ "firs", "prev", "next", "last", "nav", "text", "up", "down"
+ };
+ private Integer[] objects;
+
+ /**
+ * @param xmsf
+ * @param set_ the configuration set of the supported
+ * icon sets.
+ */
+ public IconsDialog(XMultiServiceFactory xmsf,
+ ConfigSet set_,
+ WebWizardDialogResources resources)
+ throws Exception
+ {
+ super(xmsf, WWHID.HID_IS, new String[]
+ {
+ resources.resIconsDialog,
+ resources.resIconsDialogCaption,
+ resources.resOK,
+ resources.resCancel,
+ resources.resHelp,
+ resources.resDeselect,
+ resources.resOther,
+ resources.resCounter
+ });
+
+ htmlexpDirectory = FileAccess.getOfficePath(xmsf, "Gallery", "share", "");
+ set = set_;
+ objects = new Integer[set.getSize() * icons.length];
+ for (int i = 0; i < objects.length; i++)
+ {
+ objects[i] = new Integer(i);
+ }
+ il.setListModel(this);
+ il.setRenderer(this);
+ il.setRows(4);
+ il.setCols(8);
+ il.setImageSize(new Size(20, 20));
+ il.setShowButtons(false);
+ il.setRowSelect(true);
+ il.scaleImages = Boolean.FALSE;
+
+ showDeselectButton = true;
+ showOtherButton = false;
+
+ build();
+ }
+
+ public String getIconset()
+ {
+ if (getSelected() == null)
+ {
+ return null;
+ }
+ else
+ {
+ return (String) set.getKey(((Number) getSelected()).intValue() / icons.length);
+ }
+ }
+
+ public void setIconset(String iconset)
+ {
+ int icon = set.getIndexOf(set.getElement(iconset)) * icons.length;
+ this.setSelected(icon >= 0 ? objects[icon] : null);
+ }
+
+ /**
+ * dummy
+ */
+ public synchronized void addListDataListener(javax.swing.event.ListDataListener listener)
+ {
+ }
+
+ /**
+ * dummy
+ */
+ public synchronized void removeListDataListener(javax.swing.event.ListDataListener listener)
+ {
+ }
+
+ /* (non-Javadoc)
+ * @see javax.swing.ListModel#getSize()
+ */
+ public int getSize()
+ {
+ return set.getSize() * icons.length;
+ }
+ /* (non-Javadoc)
+ * @see javax.swing.ListModel#getElementAt(int)
+ */
+
+ public Object getElementAt(int arg0)
+ {
+ return objects[arg0];
+ }
+
+ /* (non-Javadoc)
+ * @see com.sun.star.wizards.ui.ImageList.ImageRenderer#getImageUrls(java.lang.Object)
+ */
+ public Object[] getImageUrls(Object listItem)
+ {
+ int i = ((Number) listItem).intValue();
+ int iset = getIconsetNum(i);
+ int icon = getIconNum(i);
+ String[] sRetUrls = new String[2];
+ sRetUrls[0] = htmlexpDirectory + "/htmlexpo/" +
+ getIconsetPref(iset) +
+ icons[icon] +
+ getIconsetPostfix(iset);
+ sRetUrls[1] = sRetUrls[0];
+ //System.out.println(s);
+ return sRetUrls;
+ }
+ /* (non-Javadoc)
+ * @see com.sun.star.wizards.common.Renderer#render(java.lang.Object)
+ */
+
+ public String render(Object object)
+ {
+ if (object == null)
+ {
+ return "";
+ }
+ int i = ((Number) object).intValue();
+ int iset = getIconsetNum(i);
+ return getIconset(iset).cp_Name;
+ }
+
+ private int getIconsetNum(int i)
+ {
+ return i / icons.length;
+ }
+
+ private int getIconNum(int i)
+ {
+ return i % icons.length;
+ }
+
+ private String getIconsetPref(int iconset)
+ {
+ return getIconset(iconset).cp_FNPrefix;
+ }
+
+ private String getIconsetPostfix(int iconset)
+ {
+ return getIconset(iconset).cp_FNPostfix;
+ }
+
+ private CGIconSet getIconset(int i)
+ {
+ return (CGIconSet) set.getElementAt(i);
+ }
+}