diff options
Diffstat (limited to 'scripting/java/org/openoffice/netbeans/modules/office/wizard/ParcelContentsIterator.java')
-rw-r--r-- | scripting/java/org/openoffice/netbeans/modules/office/wizard/ParcelContentsIterator.java | 248 |
1 files changed, 0 insertions, 248 deletions
diff --git a/scripting/java/org/openoffice/netbeans/modules/office/wizard/ParcelContentsIterator.java b/scripting/java/org/openoffice/netbeans/modules/office/wizard/ParcelContentsIterator.java deleted file mode 100644 index 4135724d2010..000000000000 --- a/scripting/java/org/openoffice/netbeans/modules/office/wizard/ParcelContentsIterator.java +++ /dev/null @@ -1,248 +0,0 @@ -/* - * 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.netbeans.modules.office.wizard; - -import java.awt.Component; -import java.io.File; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.NoSuchElementException; -import java.util.Set; -import javax.swing.JComponent; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -import org.openide.TopManager; -import org.openide.NotifyDescriptor; -import org.openide.WizardDescriptor; -import org.openide.cookies.OpenCookie; -import org.openide.cookies.SourceCookie; -import org.openide.loaders.*; -import org.openide.util.NbBundle; -import org.openide.filesystems.*; - -import com.sun.star.script.framework.container.ParcelDescriptor; -import org.openoffice.idesupport.zip.ParcelZipper; -import org.openoffice.netbeans.modules.office.loader.ParcelFolder; -import org.openoffice.netbeans.modules.office.loader.ParcelContentsFolder; -import org.openoffice.netbeans.modules.office.filesystem.OpenOfficeDocFileSystem; - -/** A template wizard iterator (sequence of panels). - * Used to fill in the second and subsequent panels in the New wizard. - * Associate this to a template inside a layer using the - * Sequence of Panels extra property. - * Create one or more panels from template as needed too. - */ -public class ParcelContentsIterator implements TemplateWizard.Iterator { - - - // You should define what panels you want to use here: - - public static final String PROP_LANGUAGE = - ParcelFolder.LANGUAGE_ATTRIBUTE; - - protected WizardDescriptor.Panel[] createPanels() { - return new WizardDescriptor.Panel[] { - new ParcelPropertiesPanel(), - }; - } - - // And the list of step names: - - protected String[] createSteps() { - return new String[] { - // null, - "Parcel Properties", - }; - } - - private DataFolder checkTarget(DataFolder folder) { - FileObject fo = folder.getPrimaryFile(); - - try { - FileSystem fs = fo.getFileSystem(); - - if (fs instanceof OpenOfficeDocFileSystem && fo.isRoot()) { - FileObject scripts = - fo.getFileObject(OpenOfficeDocFileSystem.SCRIPTS_ROOT); - - if (scripts == null) - scripts = - fo.createFolder(OpenOfficeDocFileSystem.SCRIPTS_ROOT); - - FileObject javafolder = scripts.getFileObject("java"); - - if (javafolder == null) - javafolder = scripts.createFolder("java"); - - DataFolder subfolder = new DataFolder(javafolder); - return subfolder; - } - } catch (IOException ioe) { - /* do nothing, we will just return the folder we were passed in */ - } - - return folder; - } - - public Set instantiate(TemplateWizard wiz) throws IOException { - String name = wiz.getTargetName(); - DataFolder targetFolder = wiz.getTargetFolder(); - targetFolder = checkTarget(targetFolder); - - String language = (String)wiz.getProperty(PROP_LANGUAGE); - - DataObject template = wiz.getTemplate(); - DataObject result; - - if (name == null) { - // Default name. - result = template.createFromTemplate(targetFolder); - } else { - result = template.createFromTemplate(targetFolder, name); - } - - FileObject recipe = result.getPrimaryFile(); - - FileObject contents = - recipe.getFileObject(ParcelZipper.CONTENTS_DIRNAME); - - if (contents != null) { - File f = FileUtil.toFile(contents); - ParcelDescriptor pd = ParcelDescriptor.createParcelDescriptor(f); - pd.setLanguage(language); - pd.write(); - - DataFolder parent = DataFolder.findFolder(contents); - ParcelContentsFolder.createEmptyScript(parent, language); - } - - return Collections.singleton(result); - } - - // --- The rest probably does not need to be touched. --- - - private transient int index; - private transient WizardDescriptor.Panel[] panels; - private transient TemplateWizard wiz; - - // You can keep a reference to the TemplateWizard which can - // provide various kinds of useful information such as - // the currently selected target name. - // Also the panels will receive wiz as their "settings" object. - public void initialize(TemplateWizard wiz) { - this.wiz = wiz; - index = 0; - panels = createPanels(); - // Make sure list of steps is accurate. - String[] steps = createSteps(); - - for (int i = 0; i < panels.length; i++) { - Component c = panels[i].getComponent(); - - if (steps[i] == null) { - // Default step name to component name of panel. - // Mainly useful for getting the name of the target - // chooser to appear in the list of steps. - steps[i] = c.getName(); - } - - if (c instanceof JComponent) { // assume Swing components - JComponent jc = (JComponent)c; - // Step #. - jc.putClientProperty("WizardPanel_contentSelectedIndex", - Integer.valueOf(i)); // NOI18N - // Step name (actually the whole list for reference). - jc.putClientProperty("WizardPanel_contentData", steps); // NOI18N - } - } - } - public void uninitialize(TemplateWizard wiz) { - this.wiz = null; - panels = null; - } - - // --- WizardDescriptor.Iterator METHODS: --- - // Note that this is very similar to WizardDescriptor.Iterator, but with a - // few more options for customization. If you e.g. want to make panels appear - // or disappear dynamically, go ahead. - - public String name() { - return ""; - } - - public boolean hasNext() { - return index < panels.length - 1; - } - public boolean hasPrevious() { - return index > 0; - } - public void nextPanel() { - if (!hasNext()) throw new NoSuchElementException(); - - index++; - } - public void previousPanel() { - if (!hasPrevious()) throw new NoSuchElementException(); - - index--; - } - public WizardDescriptor.Panel current() { - return panels[index]; - } - - // If nothing unusual changes in the middle of the wizard, simply: - public final void addChangeListener(ChangeListener l) {} - public final void removeChangeListener(ChangeListener l) {} - // If something changes dynamically (besides moving between panels), - // e.g. the number of panels changes in response to user input, then - // uncomment the following and call when needed: - // fireChangeEvent(); - /* - private transient Set listeners = new HashSet(1); // Set<ChangeListener> - public final void addChangeListener(ChangeListener l) { - synchronized(listeners) { - listeners.add(l); - } - } - public final void removeChangeListener(ChangeListener l) { - synchronized(listeners) { - listeners.remove(l); - } - } - protected final void fireChangeEvent() { - Iterator it; - synchronized (listeners) { - it = new HashSet(listeners).iterator(); - } - ChangeEvent ev = new ChangeEvent(this); - while (it.hasNext()) { - ((ChangeListener)it.next()).stateChanged(ev); - } - } - private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { - in.defaultReadObject(); - listeners = new HashSet(1); - } - */ - -} |