Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
b1962536
Kaydet (Commit)
b1962536
authored
Eyl 18, 2001
tarafından
Bertram Nolte
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Added new Java example.
üst
d9f8adc7
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
324 additions
and
0 deletions
+324
-0
Makefile
odk/examples/java/NotesAccess/Makefile
+78
-0
NotesAccess.java
odk/examples/java/NotesAccess/NotesAccess.java
+246
-0
No files found.
odk/examples/java/NotesAccess/Makefile
0 → 100644
Dosyayı görüntüle @
b1962536
# Builds the NotesAccess java demo.
PRJ
=
..
$(PS)
..
$(PS)
..
SETTINGS
=
../../../settings
# Include settings makefile depending on platform/compiler
ifeq
"$(MAKECMDGOALS)"
"win_microcxx"
-include
$(SETTINGS)/win_microcxx_settings.mk
ifndef
PS
$(error
Platform/Compiler
settings
file
not
found)
endif
SHAREDLIB_OUT
=
$(OUT_BIN)
endif
ifeq
"$(MAKECMDGOALS)"
"solaris_workshopcxx"
-include
$(SETTINGS)/solaris_workshopcxx_settings.mk
ifndef
PS
$(error
Platform/Compiler
settings
file
not
found)
endif
SHAREDLIB_OUT
=
$(OUT_LIB)
endif
ifeq
"$(MAKECMDGOALS)"
"linux_gcc"
-include
$(SETTINGS)/linux_gcc_settings.mk
ifndef
PS
$(error
Platform/Compiler
settings
file
not
found)
endif
SHAREDLIB_OUT
=
$(OUT_LIB)
endif
# Define non-platform/compiler specific settings
include
$(SETTINGS)/dk.mk
include
$(SETTINGS)/std.mk
# Define non-platform/compiler specific settings
# Targets
.PHONY
:
ALL
ALL
:
@
echo
-------------------------------------------------------------
@
echo
You must supply a target where TARGET is one of the following:
@
echo
@
echo
win_microcxx : Windows using Microsoft C++ compiler/linker
@
echo
solaris_workshopcxx : Solaris using Sun Workshop C++ compiler
@
echo
linux_gcc : Linux using gcc
@
echo
-------------------------------------------------------------
JAVAFILES
=
\
NotesAccess.java
\
CLASSFILES
=
$
(
patsubst %.java,
$(OUT_CLASS)$(PS)
%.class,
$(JAVAFILES)
)
DK_CLASSPATH
=
$
(
subst
$(EMPTYSTRING)
$(EMPTYSTRING)
,,
\
$(CLASSES_DIR)$(PS)
jurt.jar
\
$(PATH_SEPARATOR)$(CLASSES_DIR)$(PS)
unoil.jar
\
$(PATH_SEPARATOR)$(CLASSES_DIR)$(PS)
ridl.jar
\
$(PATH_SEPARATOR)$(CLASSES_DIR)$(PS)
sandbox.jar
\
$(PATH_SEPARATOR)$(CLASSES_DIR)$(PS)
juh.jar
\
$(PATH_SEPARATOR)$(CLASSES_DIR)$(PS)
Notes.jar
\
$(PATH_SEPARATOR)$(OUT_CLASS)
\
)
win_microcxx
:
$(CLASSFILES)
solaris_workshopcxx
:
$(CLASSFILES)
linux_gcc
:
$(CLASSFILES)
include
$(SETTINGS)/stdtarget.mk
$(CLASSFILES)
:
$(OUT) $(OUT_CLASS) $(JAVAFILES)
javac
-classpath
$(DK_CLASSPATH)
-d
$(OUT_CLASS)
$(JAVAFILES)
@
echo
----
@
echo
Please use the following
command
to execute
@
echo
java
-classpath
$(DK_CLASSPATH)
NotesAccess
@
echo
----
odk/examples/java/NotesAccess/NotesAccess.java
0 → 100644
Dosyayı görüntüle @
b1962536
// Lotus Notes Domino API
import
lotus.domino.NotesThread
;
import
lotus.domino.Session
;
import
lotus.domino.Database
;
import
lotus.domino.DocumentCollection
;
import
lotus.domino.Document
;
import
lotus.domino.NotesFactory
;
// OpenOffice.org API
import
com.sun.star.bridge.XUnoUrlResolver
;
import
com.sun.star.lang.XMultiServiceFactory
;
import
com.sun.star.lang.XComponent
;
import
com.sun.star.uno.UnoRuntime
;
import
com.sun.star.frame.XComponentLoader
;
import
com.sun.star.beans.PropertyValue
;
import
com.sun.star.sheet.XSpreadsheetDocument
;
import
com.sun.star.sheet.XSpreadsheets
;
import
com.sun.star.sheet.XSpreadsheet
;
import
com.sun.star.container.XIndexAccess
;
import
com.sun.star.table.XCell
;
/** This class creates an OpenOffice.org Calc spreadsheet document and fills it
* with existing values of documents from a Lotus Notes database.
*/
public
class
NotesAccess
implements
Runnable
{
/** Host server of the Domino Directory.
*/
String
stringHost
=
null
;
/** User in the host's Domino Directory.
*/
String
stringUser
=
""
;
/** Password for the user in the host's Domino Directory.
*/
String
stringPassword
=
""
;
/** Reading the arguments and constructing the thread.
* @param argv Holding values for the host, user, and the password of the user.
*/
public
static
void
main
(
String
argv
[]
)
{
Thread
thread
;
if
(
argv
.
length
<
1
)
{
// Initializing.
NotesAccess
notesaccess
=
new
NotesAccess
();
// Allowing only local calls to the Domino classes.
thread
=
new
NotesThread
(
(
Runnable
)
notesaccess
);
}
else
{
// Extracting the host, user, and password.
NotesAccess
notesaccess
=
new
NotesAccess
(
argv
);
// Allowing remote calls to the Domino classes.
thread
=
new
Thread
(
(
Runnable
)
notesaccess
);
}
// Starting the thread.
thread
.
start
();
}
/** The constructor extracts the values for the host, user, and password given
* as arguments.
* @param argv Holding values for the host, user, and the password of the user.
*/
public
NotesAccess
(
String
argv
[]
)
{
// Getting the host.
stringHost
=
argv
[
0
];
if
(
argv
.
length
>=
2
)
{
// Getting the user.
stringUser
=
argv
[
1
];
}
if
(
argv
.
length
>=
3
)
{
// Getting the password for the user.
stringPassword
=
argv
[
2
];
}
}
/** This is the default constructor without arguments.
*/
public
NotesAccess
()
{
}
/** Reading all documents from the given database and writing the data to
* an OpenOffice.org Calc spreadsheet document.
*/
public
void
run
()
{
try
{
/* Bootstraps a servicemanager with the jurt base components
registered */
XMultiServiceFactory
xmultiservicefactory
=
com
.
sun
.
star
.
comp
.
helper
.
Bootstrap
.
createSimpleServiceManager
();
/* Creates an instance of the component UnoUrlResolver which
supports the services specified by the factory. */
Object
objectUrlResolver
=
xmultiservicefactory
.
createInstance
(
"com.sun.star.bridge.UnoUrlResolver"
);
// Create a new url resolver
XUnoUrlResolver
xurlresolver
=
(
XUnoUrlResolver
)
UnoRuntime
.
queryInterface
(
XUnoUrlResolver
.
class
,
objectUrlResolver
);
// Resolves an object that is specified as follow:
// uno:<connection description>;<protocol description>;<initial object name>
Object
objectInitial
=
xurlresolver
.
resolve
(
"uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager"
);
// Create a service manager from the initial object
xmultiservicefactory
=
(
XMultiServiceFactory
)
UnoRuntime
.
queryInterface
(
XMultiServiceFactory
.
class
,
objectInitial
);
/* A desktop environment contains tasks with one or more
frames in which components can be loaded. Desktop is the
environment for components which can instanciate within
frames. */
XComponentLoader
xcomponentloader
=
(
XComponentLoader
)
UnoRuntime
.
queryInterface
(
XComponentLoader
.
class
,
xmultiservicefactory
.
createInstance
(
"com.sun.star.frame.Desktop"
)
);
// Load a Writer document, which will be automaticly displayed
XComponent
xcomponent
=
xcomponentloader
.
loadComponentFromURL
(
"private:factory/scalc"
,
"_blank"
,
0
,
new
PropertyValue
[
0
]
);
// Querying for the interface XSpreadsheetDocument
XSpreadsheetDocument
xspreadsheetdocument
=
(
XSpreadsheetDocument
)
UnoRuntime
.
queryInterface
(
XSpreadsheetDocument
.
class
,
xcomponent
);
// Getting all sheets from the spreadsheet document.
XSpreadsheets
xspreadsheets
=
xspreadsheetdocument
.
getSheets
()
;
// Querying for the interface XIndexAccess.
XIndexAccess
xindexaccess
=
(
XIndexAccess
)
UnoRuntime
.
queryInterface
(
XIndexAccess
.
class
,
xspreadsheets
);
// Getting the first spreadsheet.
XSpreadsheet
xspreadsheet
=
(
XSpreadsheet
)
xindexaccess
.
getByIndex
(
0
);
Session
session
;
if
(
stringHost
!=
null
)
{
// 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
();
}
// Getting the specified Notes database.
Database
database
=
session
.
getDatabase
(
""
,
"F:\\odk3.0.0\\examples\\java\\NotesAccess\\Stocks.nsf"
);
// Getting a collection of all documents from the database.
DocumentCollection
documentcollection
=
database
.
getAllDocuments
();
// Getting the first document from the database
Document
document
=
documentcollection
.
getFirstDocument
();
// Start to write to cells at this row.
int
intRowToStart
=
0
;
// The current row.
int
intRow
=
intRowToStart
;
// The current column.
int
intColumn
=
0
;
// Process all documents
while
(
document
!=
null
)
{
// Getting the name of the stock.
String
stringName
=
document
.
getItemValueString
(
"Name"
);
// Inserting the name to a specified cell.
insertIntoCell
(
intColumn
,
intRow
,
stringName
,
xspreadsheet
,
""
);
// Getting the number of stocks.
double
intNumber
=
document
.
getItemValueInteger
(
"Number"
);
// Inserting the number of stocks to a specified cell.
insertIntoCell
(
intColumn
+
1
,
intRow
,
String
.
valueOf
(
intNumber
),
xspreadsheet
,
"V"
);
// Getting current share price.
double
doubleSharePrice
=
document
.
getItemValueDouble
(
"SharePrice"
);
// Inserting the current share price to a specified cell.
insertIntoCell
(
intColumn
+
2
,
intRow
,
String
.
valueOf
(
doubleSharePrice
),
xspreadsheet
,
"V"
);
// Inserting the total value.
insertIntoCell
(
intColumn
+
3
,
intRow
,
"=B"
+
String
.
valueOf
(
intRow
+
1
)
+
"*C"
+
String
.
valueOf
(
intRow
+
1
),
xspreadsheet
,
""
);
// Increasing the current row.
intRow
++;
// Getting the next document from the collection.
document
=
documentcollection
.
getNextDocument
();
}
// Summing all specific amounts.
insertIntoCell
(
intColumn
+
3
,
intRow
,
"=sum(D"
+
String
.
valueOf
(
intRowToStart
+
1
)
+
":D"
+
String
.
valueOf
(
intRow
),
xspreadsheet
,
""
);
// Leaving the program.
System
.
exit
(
0
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/** 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.
*/
public
static
void
insertIntoCell
(
int
intCellX
,
int
intCellY
,
String
stringValue
,
XSpreadsheet
xspreadsheet
,
String
stringFlag
)
{
XCell
xcell
=
null
;
try
{
xcell
=
xspreadsheet
.
getCellByPosition
(
intCellX
,
intCellY
);
}
catch
(
com
.
sun
.
star
.
lang
.
IndexOutOfBoundsException
exception
)
{
System
.
out
.
println
(
"Could not get Cell"
);
}
if
(
stringFlag
.
equals
(
"V"
))
{
xcell
.
setValue
(
(
new
Float
(
stringValue
)
).
floatValue
());
}
else
{
xcell
.
setFormula
(
stringValue
);
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment