summaryrefslogtreecommitdiffstats
path: root/odk/examples/DevelopersGuide/OfficeBean
diff options
context:
space:
mode:
Diffstat (limited to 'odk/examples/DevelopersGuide/OfficeBean')
-rw-r--r--odk/examples/DevelopersGuide/OfficeBean/Makefile90
-rw-r--r--odk/examples/DevelopersGuide/OfficeBean/OOoBeanViewer.java410
-rw-r--r--odk/examples/DevelopersGuide/OfficeBean/OfficeIconColor16.jpgbin0 -> 321 bytes
-rw-r--r--odk/examples/DevelopersGuide/OfficeBean/OfficeIconColor32.jpgbin0 -> 569 bytes
-rw-r--r--odk/examples/DevelopersGuide/OfficeBean/OfficeIconMono16.jpgbin0 -> 321 bytes
-rw-r--r--odk/examples/DevelopersGuide/OfficeBean/OfficeIconMono32.jpgbin0 -> 569 bytes
6 files changed, 500 insertions, 0 deletions
diff --git a/odk/examples/DevelopersGuide/OfficeBean/Makefile b/odk/examples/DevelopersGuide/OfficeBean/Makefile
new file mode 100644
index 0000000000..09c10d05d7
--- /dev/null
+++ b/odk/examples/DevelopersGuide/OfficeBean/Makefile
@@ -0,0 +1,90 @@
+#*************************************************************************
+#
+# The Contents of this file are made available subject to the terms of
+# the BSD license.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of Sun Microsystems, Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#**************************************************************************
+
+# Builds the OOoBean of the Developers Guide
+
+PRJ=../../..
+SETTINGS=$(PRJ)/settings
+
+include $(SETTINGS)/settings.mk
+include $(SETTINGS)/std.mk
+
+# Define non-platform/compiler specific settings
+OUT_COMP_CLASS = $(OUT_CLASS)/OOoBeanViewer
+
+PACKAGE = org/libreoffice/sdk/examples/developers_guide/office_bean
+
+JAVAFILES = \
+ OOoBeanViewer.java \
+
+CLASSFILES = $(patsubst %.java,$(OUT_COMP_CLASS)/$(PACKAGE)/%.class,$(JAVAFILES))
+
+SDK_CLASSPATH = $(subst $(EMPTYSTRING) $(PATH_SEPARATOR),$(PATH_SEPARATOR),\
+ $(PATH_SEPARATOR)$(URE_CLASSES_DIR)/libreoffice.jar\
+ $(PATH_SEPARATOR)$(OFFICE_CLASSES_DIR)/officebean.jar\
+ $(PATH_SEPARATOR)$(OUT_COMP_CLASS))
+
+# Targets
+.PHONY: ALL
+ifeq "$(OS)" "MACOSX"
+ALL :
+ @printf 'This example does not work on macOS\n'
+else
+ALL : \
+ OOoBeanViewer
+endif
+
+include $(SETTINGS)/stdtarget.mk
+
+$(CLASSFILES) : $(JAVAFILES)
+ -$(MKDIR) $(subst /,$(PS),$(@D))
+ javac $(JAVAC_FLAGS) -classpath "$(SDK_CLASSPATH)" -d $(OUT_COMP_CLASS) $(JAVAFILES)
+
+OOoBeanViewer: $(CLASSFILES)
+ @echo --------------------------------------------------------------------------------
+ @echo Please use the following command to execute the example!
+ @echo -
+ @echo $(MAKE) OOoBeanViewer.run
+ @echo --------------------------------------------------------------------------------
+
+%.run: $(CLASSFILES)
+ $(SDK_JAVA) -classpath "$(SDK_CLASSPATH)" $(subst /,.,$(PACKAGE)).$(basename $@)
+
+%.dbg: $(JAR1_JAR)
+ jdb -classpath "$(SDK_CLASSPATH)" $(subst /,.,$(PACKAGE)).$(basename $@)
+
+.PHONY: clean
+clean :
+ -$(DELRECURSIVE) $(subst /,$(PS),$(OUT_COMP_CLASS))
+
diff --git a/odk/examples/DevelopersGuide/OfficeBean/OOoBeanViewer.java b/odk/examples/DevelopersGuide/OfficeBean/OOoBeanViewer.java
new file mode 100644
index 0000000000..f87eb36786
--- /dev/null
+++ b/odk/examples/DevelopersGuide/OfficeBean/OOoBeanViewer.java
@@ -0,0 +1,410 @@
+/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * The Contents of this file are made available subject to the terms of
+ * the BSD license.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Sun Microsystems, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *************************************************************************/
+
+package org.libreoffice.sdk.examples.developers_guide.office_bean;
+
+import com.sun.star.comp.beans.OOoBean;
+import javax.swing.filechooser.*;
+import javax.swing.*;
+import java.io.*;
+
+/* A simple Applet that contains the SimpleBean.
+ *
+ * This applet is a sample implementation of the
+ * OpenOffice.org bean.
+ * When initially loaded the applet has two buttons
+ * one for opening an existent file and one to open
+ * a blank document of a given type supported by
+ * OpenOffice.org eg. Writer, Calc, Impress, ...
+ *
+ */
+
+public class OOoBeanViewer extends java.applet.Applet
+{
+
+ /**
+ * Private variables declaration - GUI components
+ */
+ private java.awt.Panel rightPanel;
+ private java.awt.Panel bottomPanel;
+ private javax.swing.JButton closeButton;
+ private javax.swing.JButton terminateButton;
+ private javax.swing.JButton newDocumentButton;
+ private javax.swing.JPopupMenu documentTypePopUp;
+ private javax.swing.JCheckBox menuBarButton;
+ private javax.swing.JCheckBox mainBarButton;
+ private javax.swing.JCheckBox toolBarButton;
+ private javax.swing.JCheckBox statusBarButton;
+ private javax.swing.JButton storeDocumentButton;
+ private javax.swing.JButton loadDocumentButton;
+ private javax.swing.JButton syswinButton;
+ private JTextField documentURLTextField;
+ private JMenuItem item;
+ private JFileChooser fileChooser;
+ private byte buffer[];
+
+ /**
+ * Private variables declaration - SimpleBean variables
+ */
+ private OOoBean aBean;
+
+ /**
+ * Initialize the Applet
+ */
+ public void init()
+ {
+ //The aBean needs to be initialized to add it to the applet
+ aBean = new OOoBean();
+
+ //Initialize GUI components
+ rightPanel = new java.awt.Panel();
+ bottomPanel = new java.awt.Panel();
+ closeButton = new javax.swing.JButton("close");
+ terminateButton = new javax.swing.JButton("terminate");
+ newDocumentButton = new javax.swing.JButton("new document...");
+ documentTypePopUp = new javax.swing.JPopupMenu();
+ storeDocumentButton = new javax.swing.JButton("store to buffer");
+ loadDocumentButton = new javax.swing.JButton("load from buffer");
+ syswinButton = new javax.swing.JButton("release/acquire");
+
+ menuBarButton = new javax.swing.JCheckBox("MenuBar");
+ menuBarButton.setSelected( aBean.isMenuBarVisible() );
+
+ mainBarButton = new javax.swing.JCheckBox("MainBar");
+ mainBarButton.setSelected( aBean.isStandardBarVisible() );
+
+ toolBarButton = new javax.swing.JCheckBox("ToolBar");
+ toolBarButton.setSelected( aBean.isToolBarVisible() );
+
+ statusBarButton = new javax.swing.JCheckBox("StatusBar");
+ statusBarButton.setSelected( aBean.isStatusBarVisible() );
+
+ documentURLTextField = new javax.swing.JTextField();
+
+ //Set up the Popup Menu to create a blank document
+ documentTypePopUp.setToolTipText("Create an empty document");
+
+ item = documentTypePopUp.add("Text Document");
+ item.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ createBlankDoc("private:factory/swriter",
+ "New text document");
+ }
+ });
+
+ item = documentTypePopUp.add("Presentation Document");
+ item.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ createBlankDoc("private:factory/simpress",
+ "New presentation document");
+ }
+ });
+
+ item = documentTypePopUp.add("Drawing Document");
+ item.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ createBlankDoc("private:factory/sdraw",
+ "New drawing document");
+ }
+ });
+
+ item = documentTypePopUp.add("Formula Document");
+ item.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ createBlankDoc("private:factory/smath",
+ "New formula document");
+ }
+ });
+
+ item = documentTypePopUp.add("Spreadsheet Document");
+ item.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ createBlankDoc("private:factory/scalc",
+ "New spreadsheet document");
+ }
+ });
+
+ syswinButton.addActionListener(
+ new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ try
+ {
+ aBean.releaseSystemWindow();
+ aBean.aquireSystemWindow();
+ }
+ catch ( com.sun.star.comp.beans.NoConnectionException aExc )
+ {}
+ catch ( com.sun.star.comp.beans.SystemWindowException aExc )
+ {}
+ }
+ });
+
+ storeDocumentButton.addActionListener(
+ new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ try
+ {
+ buffer = aBean.storeToByteArray( null, null );
+ }
+ catch ( Throwable aExc )
+ {
+ System.err.println( "storeToBuffer failed: " + aExc );
+ aExc.printStackTrace( System.err );
+ }
+ }
+ });
+
+ loadDocumentButton.addActionListener(
+ new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ try
+ {
+ aBean.loadFromByteArray( buffer, null );
+ }
+ catch ( Throwable aExc )
+ {
+ System.err.println( "loadFromBuffer failed: " + aExc );
+ aExc.printStackTrace( System.err );
+ }
+ }
+ });
+
+ closeButton.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ close();
+ }
+ });
+
+ terminateButton.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ terminate();
+ }
+ });
+
+ newDocumentButton.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ documentTypePopUp.show((java.awt.Component)evt.getSource(), 0,0);
+ }
+ });
+
+ menuBarButton.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ aBean.setMenuBarVisible( !aBean.isMenuBarVisible() );
+ }
+ });
+
+ mainBarButton.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ aBean.setStandardBarVisible( !aBean.isStandardBarVisible() );
+ }
+ });
+
+ toolBarButton.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ aBean.setToolBarVisible( !aBean.isToolBarVisible() );
+ }
+ });
+
+ statusBarButton.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ aBean.setStatusBarVisible( !aBean.isStatusBarVisible() );
+ }
+ });
+
+ documentURLTextField.setEditable(false);
+ documentURLTextField.setPreferredSize(new java.awt.Dimension(200, 30));
+
+ rightPanel.setLayout( new java.awt.GridLayout(10,1) );
+ rightPanel.add(closeButton);
+ rightPanel.add(terminateButton);
+ rightPanel.add(newDocumentButton);
+ rightPanel.add(storeDocumentButton);
+ rightPanel.add(loadDocumentButton);
+ rightPanel.add(syswinButton);
+ rightPanel.add(menuBarButton);
+ rightPanel.add(mainBarButton);
+ rightPanel.add(toolBarButton);
+ rightPanel.add(statusBarButton);
+
+ //bottomPanel.setLayout( new java.awt.GridLayout(1,1) );
+ bottomPanel.setLayout( new java.awt.BorderLayout() );
+ bottomPanel.add(documentURLTextField);
+
+ setLayout(new java.awt.BorderLayout());
+
+ add(aBean, java.awt.BorderLayout.CENTER);
+ add(rightPanel, java.awt.BorderLayout.EAST);
+ add(bottomPanel, java.awt.BorderLayout.SOUTH);
+ }
+
+ /**
+ * Create a blank document of type <code>desc</code>
+ *
+ * @param url The private internal URL of the OpenOffice.org
+ * document describing the document
+ * @param desc A description of the document to be created
+ */
+ private void createBlankDoc(String url, String desc)
+ {
+ //Create a blank document
+ try
+ {
+ documentURLTextField.setText(desc);
+ //Get the office process to load the URL
+ aBean.loadFromURL( url, null );
+
+ aBean.aquireSystemWindow();
+ }
+ catch ( com.sun.star.comp.beans.SystemWindowException aExc )
+ {
+ System.err.println( "OOoBeanViewer.1:" );
+ aExc.printStackTrace();
+ }
+ catch ( com.sun.star.comp.beans.NoConnectionException aExc )
+ {
+ System.err.println( "OOoBeanViewer.2:" );
+ aExc.printStackTrace();
+ }
+ catch ( Exception aExc )
+ {
+ System.err.println( "OOoBeanViewer.3:" );
+ aExc.printStackTrace();
+ //return;
+ }
+ }
+
+ /** closes the bean viewer, leaves OOo running.
+ */
+ private void close()
+ {
+ setVisible(false);
+ aBean.stopOOoConnection();
+ stop();
+ System.exit(0);
+ }
+
+ /** closes the bean viewer and tries to terminate OOo.
+ */
+ private void terminate()
+ {
+ setVisible(false);
+ com.sun.star.frame.XDesktop xDesktop = null;
+ try {
+ xDesktop = aBean.getOOoDesktop();
+ }
+ catch ( com.sun.star.comp.beans.NoConnectionException aExc ) {} // ignore
+ aBean.stopOOoConnection();
+ stop();
+ if ( xDesktop != null )
+ xDesktop.terminate();
+ System.exit(0);
+ }
+
+ /**
+ * An ExitListener listening for windowClosing events
+ */
+ private class ExitListener extends java.awt.event.WindowAdapter
+ {
+ /**
+ * windowClosed
+ *
+ * @param e A WindowEvent for a closed Window event
+ */
+ public void windowClosed( java.awt.event.WindowEvent e)
+ {
+ close();
+ }
+
+ /**
+ * windowClosing for a closing window event
+ *
+ * @param e A WindowEvent for a closing window event
+ */
+ public void windowClosing( java.awt.event.WindowEvent e)
+ {
+ ((java.awt.Window)e.getSource()).dispose();
+ }
+ }
+
+ public static void main(String args[])
+ {
+ java.awt.Frame frame = new java.awt.Frame("OpenOffice.org Demo");
+ OOoBeanViewer aViewer = new OOoBeanViewer();
+
+ frame.setLayout(new java.awt.BorderLayout());
+
+ frame.addWindowListener( aViewer.new ExitListener() );
+
+ aViewer.init();
+ aViewer.start();
+
+ frame.add(aViewer);
+ frame.setLocation( 200, 200 );
+ frame.setSize( 800, 480 );
+ frame.show();
+ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/odk/examples/DevelopersGuide/OfficeBean/OfficeIconColor16.jpg b/odk/examples/DevelopersGuide/OfficeBean/OfficeIconColor16.jpg
new file mode 100644
index 0000000000..cd9c5a602e
--- /dev/null
+++ b/odk/examples/DevelopersGuide/OfficeBean/OfficeIconColor16.jpg
Binary files differ
diff --git a/odk/examples/DevelopersGuide/OfficeBean/OfficeIconColor32.jpg b/odk/examples/DevelopersGuide/OfficeBean/OfficeIconColor32.jpg
new file mode 100644
index 0000000000..ccab06b516
--- /dev/null
+++ b/odk/examples/DevelopersGuide/OfficeBean/OfficeIconColor32.jpg
Binary files differ
diff --git a/odk/examples/DevelopersGuide/OfficeBean/OfficeIconMono16.jpg b/odk/examples/DevelopersGuide/OfficeBean/OfficeIconMono16.jpg
new file mode 100644
index 0000000000..cd9c5a602e
--- /dev/null
+++ b/odk/examples/DevelopersGuide/OfficeBean/OfficeIconMono16.jpg
Binary files differ
diff --git a/odk/examples/DevelopersGuide/OfficeBean/OfficeIconMono32.jpg b/odk/examples/DevelopersGuide/OfficeBean/OfficeIconMono32.jpg
new file mode 100644
index 0000000000..ccab06b516
--- /dev/null
+++ b/odk/examples/DevelopersGuide/OfficeBean/OfficeIconMono32.jpg
Binary files differ