/* -*- 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. *
*************************************************************************/
/** This class creates an OpenOffice.org Calc spreadsheet document and fills it * with existing values of documents from a Lotus Notes database.
*/ publicclass NotesAccess implements Runnable {
/** Host server of the Domino Directory.
*/ static String stringHost = "";
/** User in the host's Domino Directory.
*/ static String stringUser = "";
/** Password for the user in the host's Domino Directory.
*/ static String stringPassword = "";
/** Database with documents to get data from.
*/ static String stringDatabase = "";
/** Reading the arguments and constructing the thread. * @param args Holding values for the host, user, and the password of the user.
*/ publicstaticvoid main( String args[] ) { Threadthread;
try {
java.io.File sourceFile = new java.io.File(args[ 3 ].trim());
stringDatabase = sourceFile.getCanonicalPath();
} catch (java.io.IOException e) {
System.out.println("Error: Please check the name or path to your database file.");
e.printStackTrace();
System.exit( 1 );
}
if ( stringHost.equals( "" ) ) { // Initializing.
NotesAccess notesaccess = new NotesAccess();
// Allowing only local calls to the Domino classes. thread = new NotesThread( notesaccess );
} else { // Extracting the host, user, and password.
NotesAccess notesaccess = new NotesAccess();
// Allowing remote calls to the Domino classes. thread = newThread( notesaccess );
}
// Starting the thread. thread.start();
}
/** Reading all documents from the given database and writing the data to * an OpenOffice.org Calc spreadsheet document.
*/ publicvoid run() { try { // get the remote office component context
XComponentContext xContext =
com.sun.star.comp.helper.Bootstrap.bootstrap();
System.out.println("Connected to a running office ...");
/* A desktop environment contains tasks with one or more frames in which components can be loaded. Desktop is the environment for components which can instantiate within
frames. */
XComponentLoader xLoader = UnoRuntime.queryInterface(XComponentLoader.class,
xMCF.createInstanceWithContext( "com.sun.star.frame.Desktop", xContext));
// Load a Writer document, which will be automatically displayed
XComponent xComponent = xLoader.loadComponentFromURL( "private:factory/scalc", "_blank", 0, new PropertyValue[0] );
// Querying for the interface XSpreadsheetDocument
XSpreadsheetDocument xSpreadsheetDoc =
UnoRuntime.queryInterface(
XSpreadsheetDocument.class, xComponent);
// Getting all sheets from the spreadsheet document.
XSpreadsheets xSpreadsheets = xSpreadsheetDoc.getSheets() ;
// Querying for the interface XIndexAccess.
XIndexAccess xIndexAccess = UnoRuntime.queryInterface(
XIndexAccess.class, xSpreadsheets);
// Getting the first spreadsheet.
XSpreadsheet xSpreadsheet = UnoRuntime.queryInterface(
XSpreadsheet.class, xIndexAccess.getByIndex(0));
Session session; if ( !stringHost.equals( "" ) ) { // Creating a Notes session for remote calls to the Domino classes.
session = NotesFactory.createSession(stringHost, stringUser,
stringPassword);
} else { // Creating a Notes session for only local calls to the // Domino classes.
session = NotesFactory.createSession();
}
/** Inserting a value or formula to a cell defined by the row and column. * @param intCellX Row. * @param intCellY Column. * @param stringValue This value will be written to the cell. * @param xSpreadsheet Write the value to the cells of this spreadsheet. * @param stringFlag If this string contains "V", the value will be written, * otherwise the formula.
*/ publicstaticvoid insertIntoCell(int intCellX, int intCellY,
String stringValue,
XSpreadsheet xSpreadsheet,
String stringFlag)
{
XCell xCell = null;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.