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
aec29756
Kaydet (Commit)
aec29756
authored
Kas 14, 2003
tarafından
Mikhail Voitenko
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
#112923# ole implementation related changes
üst
5ea5c0af
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
492 additions
and
348 deletions
+492
-348
build.lst
embeddedobj/prj/build.lst
+2
-1
embedobj.cxx
embeddedobj/source/commonembedding/embedobj.cxx
+9
-5
persistence.cxx
embeddedobj/source/commonembedding/persistence.cxx
+9
-16
commonembobj.hxx
embeddedobj/source/inc/commonembobj.hxx
+4
-4
olecomponent.cxx
embeddedobj/source/msole/olecomponent.cxx
+11
-4
olecomponent.hxx
embeddedobj/source/msole/olecomponent.hxx
+3
-2
EmbedContApp.java
embeddedobj/test/Container1/EmbedContApp.java
+437
-314
makefile.mk
embeddedobj/util/makefile.mk
+17
-2
No files found.
embeddedobj/prj/build.lst
Dosyayı görüntüle @
aec29756
...
...
@@ -2,4 +2,5 @@ es embeddedobj : offuh sal cppu cppuhelper NULL
es embeddedobj usr1 - all eo_mkout NULL
es embeddedobj\source\commonembedding nmake - all eo_commonembed NULL
es embeddedobj\source\general nmake - all eo_general NULL
es embeddedobj\util nmake - all eo_util eo_commonembed eo_general NULL
es embeddedobj\source\msole nmake - all eo_msole NULL
es embeddedobj\util nmake - all eo_util eo_commonembed eo_general eo_msole NULL
embeddedobj/source/commonembedding/embedobj.cxx
Dosyayı görüntüle @
aec29756
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: embedobj.cxx,v $
*
* $Revision: 1.
1
$
* $Revision: 1.
2
$
*
* last change: $Author: mav $ $Date: 2003-1
0-27 12:57:28
$
* last change: $Author: mav $ $Date: 2003-1
1-14 15:24:24
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -181,6 +181,9 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState )
if
(
!
xModif
.
is
()
)
throw
uno
::
RuntimeException
();
if
(
!
m_xClientSite
.
is
()
)
throw
embed
::
WrongStateException
();
//TODO: client site is not set!
// store document if it is modified
if
(
xModif
->
isModified
()
)
{
...
...
@@ -324,7 +327,7 @@ void SAL_CALL OCommonEmbeddedObject::doVerb( sal_Int32 nVerbID )
}
//----------------------------------------------
uno
::
Sequence
<
sal_Int32
>
SAL_CALL
OCommonEmbeddedObject
::
getSupportedVerbs
()
uno
::
Sequence
<
embed
::
VerbDescr
>
SAL_CALL
OCommonEmbeddedObject
::
getSupportedVerbs
()
throw
(
embed
::
WrongStateException
,
uno
::
RuntimeException
)
{
...
...
@@ -336,7 +339,7 @@ uno::Sequence< sal_Int32 > SAL_CALL OCommonEmbeddedObject::getSupportedVerbs()
throw
embed
::
WrongStateException
(
::
rtl
::
OUString
::
createFromAscii
(
"The object has no persistence!
\n
"
),
uno
::
Reference
<
uno
::
XInterface
>
(
reinterpret_cast
<
::
cppu
::
OWeakObject
*
>
(
this
)
)
);
uno
::
Sequence
<
sal_Int32
>
aResult
;
uno
::
Sequence
<
embed
::
VerbDescr
>
aResult
;
sal_Int32
nResLen
=
0
;
// verbs list will be set on initialization depending from document type
...
...
@@ -345,7 +348,8 @@ uno::Sequence< sal_Int32 > SAL_CALL OCommonEmbeddedObject::getSupportedVerbs()
if
(
m_aVerbTable
[
nVerbInd
][
1
]
==
m_aAcceptedStates
[
nStatesInd
]
)
{
aResult
.
realloc
(
++
nResLen
);
aResult
[
nResLen
-
1
]
=
m_aVerbTable
[
nVerbInd
][
0
];
// TODO: fill the whole structure
aResult
[
nResLen
-
1
].
VerbID
=
m_aVerbTable
[
nVerbInd
][
0
];
}
return
aResult
;
...
...
embeddedobj/source/commonembedding/persistence.cxx
Dosyayı görüntüle @
aec29756
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: persistence.cxx,v $
*
* $Revision: 1.
2
$
* $Revision: 1.
3
$
*
* last change: $Author: mav $ $Date: 2003-11-
04 14:30:19
$
* last change: $Author: mav $ $Date: 2003-11-
14 15:24:24
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -499,7 +499,7 @@ uno::Reference< frame::XModel > OCommonEmbeddedObject::CreateTempDocFromLink_Imp
}
//------------------------------------------------------
sal_Bool
SAL_CALL
OCommonEmbeddedObject
::
setPersistentEntry
(
void
SAL_CALL
OCommonEmbeddedObject
::
setPersistentEntry
(
const
uno
::
Reference
<
embed
::
XStorage
>&
xStorage
,
const
::
rtl
::
OUString
&
sEntName
,
sal_Int32
nEntryConnectionMode
,
...
...
@@ -547,6 +547,10 @@ sal_Bool SAL_CALL OCommonEmbeddedObject::setPersistentEntry(
::
rtl
::
OUString
::
createFromAscii
(
"The object waits for saveCompleted() call!
\n
"
),
uno
::
Reference
<
uno
::
XInterface
>
(
reinterpret_cast
<
::
cppu
::
OWeakObject
*
>
(
this
)
)
);
// TODO: the OOo link will have persistence
if
(
m_bIsLink
)
return
;
uno
::
Reference
<
container
::
XNameAccess
>
xNameAccess
(
xStorage
,
uno
::
UNO_QUERY
);
if
(
!
xNameAccess
.
is
()
)
throw
uno
::
RuntimeException
();
//TODO
...
...
@@ -565,10 +569,6 @@ sal_Bool SAL_CALL OCommonEmbeddedObject::setPersistentEntry(
m_xParentStorage
=
xStorage
;
m_aEntryName
=
sEntName
;
// the object should be based on the storage ??? TODO
if
(
bElExists
&&
!
xStorage
->
isStorageElement
(
sEntName
)
)
throw
io
::
IOException
();
// TODO access denied
if
(
nEntryConnectionMode
==
embed
::
EntryInitModes
::
ENTRY_DEFAULT_INIT
)
{
if
(
bElExists
)
...
...
@@ -593,9 +593,8 @@ sal_Bool SAL_CALL OCommonEmbeddedObject::setPersistentEntry(
if
(
nEntryConnectionMode
==
embed
::
EntryInitModes
::
ENTRY_NO_INIT
)
{
// the document just already changed its storage to store to
// the links to OOo documents will ignore this call and return false
if
(
m_bIsLink
)
return
sal_False
;
// the links to OOo documents for now ignore this call
// TODO: OOo links will have persistence so it will be switched here
}
else
if
(
nEntryConnectionMode
==
embed
::
EntryInitModes
::
ENTRY_TRUNCATE_INIT
)
{
...
...
@@ -621,8 +620,6 @@ sal_Bool SAL_CALL OCommonEmbeddedObject::setPersistentEntry(
uno
::
Reference
<
uno
::
XInterface
>
(
reinterpret_cast
<
::
cppu
::
OWeakObject
*
>
(
this
)
),
3
);
}
return
sal_True
;
}
//------------------------------------------------------
...
...
@@ -986,10 +983,6 @@ void SAL_CALL OCommonEmbeddedObject::breakLink( const uno::Reference< embed::XSt
m_xParentStorage
=
xStorage
;
m_aEntryName
=
sEntName
;
// the object should be based on the storage ??? TODO
if
(
bElExists
&&
!
xStorage
->
isStorageElement
(
sEntName
)
)
throw
io
::
IOException
();
// TODO access denied
// for linked object it means that it becomes embedded object
// the document must switch it's persistence also
...
...
embeddedobj/source/inc/commonembobj.hxx
Dosyayı görüntüle @
aec29756
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: commonembobj.hxx,v $
*
* $Revision: 1.
2
$
* $Revision: 1.
3
$
*
* last change: $Author: mav $ $Date: 2003-11-
04 14:30:20
$
* last change: $Author: mav $ $Date: 2003-11-
14 15:24:26
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -275,7 +275,7 @@ public:
::
com
::
sun
::
star
::
uno
::
Exception
,
::
com
::
sun
::
star
::
uno
::
RuntimeException
);
virtual
::
com
::
sun
::
star
::
uno
::
Sequence
<
sal_Int32
>
SAL_CALL
getSupportedVerbs
()
virtual
::
com
::
sun
::
star
::
uno
::
Sequence
<
::
com
::
sun
::
star
::
embed
::
VerbDescr
>
SAL_CALL
getSupportedVerbs
()
throw
(
::
com
::
sun
::
star
::
embed
::
WrongStateException
,
::
com
::
sun
::
star
::
uno
::
RuntimeException
);
...
...
@@ -326,7 +326,7 @@ public:
// XEmbedPersist
virtual
sal_Bool
SAL_CALL
setPersistentEntry
(
virtual
void
SAL_CALL
setPersistentEntry
(
const
::
com
::
sun
::
star
::
uno
::
Reference
<
::
com
::
sun
::
star
::
embed
::
XStorage
>&
xStorage
,
const
::
rtl
::
OUString
&
sEntName
,
sal_Int32
nEntryConnectionMode
,
...
...
embeddedobj/source/msole/olecomponent.cxx
Dosyayı görüntüle @
aec29756
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: olecomponent.cxx,v $
*
* $Revision: 1.
1
$
* $Revision: 1.
2
$
*
* last change: $Author: mav $ $Date: 2003-11-1
3 17:01:13
$
* last change: $Author: mav $ $Date: 2003-11-1
4 15:24:27
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -312,9 +312,15 @@ OleComponent::OleComponent( const uno::Reference< lang::XMultiServiceFactory >&
,
m_nAdvConn
(
0
)
,
m_nSupportedFormat
(
0
)
,
m_nSupportedMedium
(
0
)
,
m_bOleInitialized
(
sal_False
)
{
OSL_ENSURE
(
m_pUnoOleObject
,
"No owner object is provided!"
);
HRESULT
hr
=
OleInitialize
(
NULL
);
OSL_ENSURE
(
hr
==
S_OK
||
hr
==
S_FALSE
,
"The ole can not be successfuly initialized
\n
"
);
if
(
hr
==
S_OK
||
hr
==
S_FALSE
)
m_bOleInitialized
=
sal_True
;
m_pOleWrapClientSite
=
new
OleWrapperClientSite
(
(
OleComponent
*
)
this
);
m_pOleWrapClientSite
->
AddRef
();
...
...
@@ -352,6 +358,9 @@ OleComponent::~OleComponent()
delete
m_pInterfaceContainer
;
m_pInterfaceContainer
=
NULL
;
}
if
(
m_bOleInitialized
)
OleUninitialize
();
}
//----------------------------------------------
...
...
@@ -654,8 +663,6 @@ uno::Sequence< embed::VerbDescr > OleComponent::GetVerbList()
if
(
!
m_aVerbList
.
getLength
()
)
{
// InitOle(); // TODO: makes sence to do in a central place
CComPtr
<
IEnumOLEVERB
>
pEnum
;
if
(
SUCCEEDED
(
m_pOleObject
->
EnumVerbs
(
&
pEnum
)
)
)
{
...
...
embeddedobj/source/msole/olecomponent.hxx
Dosyayı görüntüle @
aec29756
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: olecomponent.hxx,v $
*
* $Revision: 1.
1
$
* $Revision: 1.
2
$
*
* last change: $Author: mav $ $Date: 2003-11-1
3 17:01:32
$
* last change: $Author: mav $ $Date: 2003-11-1
4 15:24:27
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -146,6 +146,7 @@ class OleComponent : public ::cppu::WeakImplHelper2< ::com::sun::star::util::XCl
sal_uInt16
m_nSupportedFormat
;
sal_uInt32
m_nSupportedMedium
;
sal_Bool
m_bOleInitialized
;
sal_Bool
InitializeObject_Impl
(
sal_uInt32
nIconHandle
);
...
...
embeddedobj/test/Container1/EmbedContApp.java
Dosyayı görüntüle @
aec29756
...
...
@@ -5,6 +5,7 @@ import java.net.*;
import
java.io.*
;
import
javax.swing.JOptionPane
;
import
javax.swing.Timer
;
import
com.sun.star.lang.XMultiServiceFactory
;
import
com.sun.star.lang.XSingleServiceFactory
;
...
...
@@ -30,7 +31,7 @@ import com.sun.star.io.XTruncate;
import
com.sun.star.embed.*
;
public
class
EmbedContApp
extends
Applet
implements
MouseListener
,
XEmbeddedClient
public
class
EmbedContApp
extends
Applet
implements
MouseListener
,
XEmbeddedClient
,
ActionListener
{
private
XMultiServiceFactory
m_xServiceFactory
;
...
...
@@ -48,6 +49,24 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie
private
boolean
m_bLinkObj
=
false
;
private
String
m_aLinkURI
;
private
byte
[]
m_pActionsList
;
private
int
m_nActionsNumber
;
private
Timer
m_aTimer
;
private
boolean
m_bDestroyed
=
false
;
// Constants
private
final
byte
DESTROY
=
1
;
private
final
byte
MOUSE_CLICKED
=
2
;
private
final
byte
NEW_DOCUMENT
=
3
;
private
final
byte
SAVE_AS
=
4
;
private
final
byte
OPEN_FILE
=
5
;
private
final
byte
SAVE
=
6
;
private
final
byte
NEW_OBJECT
=
7
;
private
final
byte
OBJECT_FROM_FILE
=
8
;
private
final
byte
LINK_FROM_FILE
=
9
;
private
final
byte
CONVERT_LINK_TO_OBJECT
=
10
;
// Methods
public
EmbedContApp
(
Frame
aFrame
,
XMultiServiceFactory
xServiceFactory
)
{
m_aFrame
=
aFrame
;
...
...
@@ -61,6 +80,12 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie
m_aToolkit
=
Toolkit
.
getDefaultToolkit
();
m_pActionsList
=
new
byte
[
200
];
m_nActionsNumber
=
0
;
m_aTimer
=
new
Timer
(
100
,
this
);
m_aTimer
.
start
();
// Get a menu bar.
MenuBar
aMenuBar
=
m_aFrame
.
getMenuBar
();
if
(
aMenuBar
==
null
)
...
...
@@ -108,6 +133,401 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie
addMouseListener
(
this
);
}
public
void
actionPerformed
(
ActionEvent
evt
)
{
synchronized
(
this
)
{
for
(
int
nInd
=
0
;
nInd
<
m_nActionsNumber
;
nInd
++
)
{
// TODO: execute m_pActionsList[ nInd ] operation
if
(
m_pActionsList
[
nInd
]
==
DESTROY
)
{
// free all resources
clearObjectAndStorage
();
m_bDestroyed
=
true
;
}
else
if
(
m_pActionsList
[
nInd
]
==
MOUSE_CLICKED
)
{
// activate object if exists and not active
if
(
m_xEmbedObj
!=
null
)
{
try
{
m_xEmbedObj
.
changeState
(
EmbedStates
.
EMBED_ACTIVE
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception on mouse click"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
else
if
(
m_pActionsList
[
nInd
]
==
NEW_DOCUMENT
)
{
// clear everything
clearObjectAndStorage
();
repaint
();
}
else
if
(
m_pActionsList
[
nInd
]
==
SAVE_AS
)
{
// open SaveAs dialog and store
if
(
m_xStorage
!=
null
&&
m_xEmbedObj
!=
null
)
{
FileDialog
aFileDialog
=
new
FileDialog
(
m_aFrame
,
"SaveAs"
,
FileDialog
.
SAVE
);
aFileDialog
.
show
();
if
(
aFileDialog
.
getFile
()
!=
null
)
{
String
aFileName
=
aFileDialog
.
getDirectory
()
+
aFileDialog
.
getFile
();
File
aFile
=
new
File
(
aFileName
);
if
(
aFile
!=
null
)
{
// create object from specified file
String
aFileURI
=
aFile
.
toURI
().
toASCIIString
();
try
{
saveObject
();
if
(
m_bLinkObj
)
storeLinkToStorage
();
saveStorageAsFileURI
(
aFileURI
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception in SaveAsMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
}
else
JOptionPane
.
showMessageDialog
(
m_aFrame
,
"No document is embedded!"
,
"Error:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
else
if
(
m_pActionsList
[
nInd
]
==
OPEN_FILE
)
{
// clear everything
clearObjectAndStorage
();
// open OpenFile dialog and load doc
FileDialog
aFileDialog
=
new
FileDialog
(
m_aFrame
,
"Open"
);
aFileDialog
.
show
();
if
(
aFileDialog
.
getFile
()
!=
null
)
{
String
aFileName
=
aFileDialog
.
getDirectory
()
+
aFileDialog
.
getFile
();
File
aFile
=
new
File
(
aFileName
);
if
(
aFile
!=
null
)
{
// create object from specified file
String
aFileURI
=
aFile
.
toURI
().
toASCIIString
();
// load from specified file
loadFileURI
(
aFileURI
);
if
(
m_xEmbedObj
!=
null
)
{
try
{
m_xEmbedObj
.
setClientSite
(
EmbedContApp
.
this
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception in OpenFileMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
}
generateNewImage
();
repaint
();
}
else
if
(
m_pActionsList
[
nInd
]
==
SAVE
)
{
// if has persistance store there
// if not open SaveAs dialog and store
if
(
m_xStorage
!=
null
&&
m_xEmbedObj
!=
null
)
{
if
(
m_bOwnFile
)
{
if
(
m_xStorage
==
null
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
"No storage for oned file!"
,
"Error:"
,
JOptionPane
.
ERROR_MESSAGE
);
return
;
}
try
{
saveObject
();
if
(
m_bLinkObj
)
storeLinkToStorage
();
XTransactedObject
xTransact
=
(
XTransactedObject
)
UnoRuntime
.
queryInterface
(
XTransactedObject
.
class
,
m_xStorage
);
if
(
xTransact
!=
null
)
xTransact
.
commit
();
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception during save operation in SaveMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
else
{
FileDialog
aFileDialog
=
new
FileDialog
(
m_aFrame
,
"SaveAs"
,
FileDialog
.
SAVE
);
aFileDialog
.
show
();
if
(
aFileDialog
.
getFile
()
!=
null
)
{
String
aFileName
=
aFileDialog
.
getDirectory
()
+
aFileDialog
.
getFile
();
File
aFile
=
new
File
(
aFileName
);
if
(
aFile
!=
null
)
{
// create object from specified file
String
aFileURI
=
aFile
.
toURI
().
toASCIIString
();
try
{
saveObject
();
if
(
m_bLinkObj
)
storeLinkToStorage
();
saveStorageAsFileURI
(
aFileURI
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception during 'save as' operation in SaveMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
}
}
else
JOptionPane
.
showMessageDialog
(
m_aFrame
,
"No document is embedded!"
,
"Error:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
else
if
(
m_pActionsList
[
nInd
]
==
NEW_OBJECT
)
{
// remove current object an init a new one
clearObjectAndStorage
();
Object
[]
possibleValues
=
{
"com.sun.star.comp.Writer.TextDocument"
,
"com.sun.star.comp.Writer.GlobalDocument"
,
"com.sun.star.comp.Writer.WebDocument"
,
"com.sun.star.comp.Calc.SpreadsheetDocument"
,
"com.sun.star.comp.Draw.PresentationDocument"
,
"com.sun.star.comp.Draw.DrawingDocument"
,
"com.sun.star.comp.Math.FormulaDocument"
,
"BitmapImage"
};
String
selectedValue
=
(
String
)
JOptionPane
.
showInputDialog
(
null
,
"DocumentType"
,
"Select"
,
JOptionPane
.
INFORMATION_MESSAGE
,
null
,
possibleValues
,
possibleValues
[
0
]
);
if
(
selectedValue
!=
null
)
{
m_xStorage
=
createTempStorage
();
if
(
m_xStorage
!=
null
)
m_xEmbedObj
=
createEmbedObject
(
selectedValue
);
else
JOptionPane
.
showMessageDialog
(
m_aFrame
,
"Can't create temporary storage!"
,
"Error:"
,
JOptionPane
.
ERROR_MESSAGE
);
if
(
m_xEmbedObj
!=
null
)
{
try
{
m_xEmbedObj
.
setClientSite
(
EmbedContApp
.
this
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception in NewObjectMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
generateNewImage
();
repaint
();
}
else
if
(
m_pActionsList
[
nInd
]
==
OBJECT_FROM_FILE
)
{
// first remove current object
clearObjectAndStorage
();
// open OpenFile dialog and load doc
FileDialog
aFileDialog
=
new
FileDialog
(
m_aFrame
,
"Select sources to use for object init"
);
aFileDialog
.
show
();
if
(
aFileDialog
.
getFile
()
!=
null
)
{
String
aFileName
=
aFileDialog
.
getDirectory
()
+
aFileDialog
.
getFile
();
File
aFile
=
new
File
(
aFileName
);
if
(
aFile
!=
null
)
{
// create object from specified file
String
aFileURI
=
aFile
.
toURI
().
toASCIIString
();
m_xStorage
=
createTempStorage
();
if
(
m_xStorage
!=
null
)
m_xEmbedObj
=
loadEmbedObject
(
aFileURI
);
if
(
m_xEmbedObj
!=
null
)
{
try
{
m_xEmbedObj
.
setClientSite
(
EmbedContApp
.
this
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception in LoadObjectMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
}
generateNewImage
();
repaint
();
}
else
if
(
m_pActionsList
[
nInd
]
==
LINK_FROM_FILE
)
{
// first remove current object
clearObjectAndStorage
();
// open OpenFile dialog and load doc
FileDialog
aFileDialog
=
new
FileDialog
(
m_aFrame
,
"Select sources to use for object init"
);
aFileDialog
.
show
();
if
(
aFileDialog
.
getFile
()
!=
null
)
{
m_xStorage
=
createTempStorage
();
String
aFileName
=
aFileDialog
.
getDirectory
()
+
aFileDialog
.
getFile
();
File
aFile
=
new
File
(
aFileName
);
if
(
aFile
!=
null
)
{
// create object from specified file
String
aFileURI
=
aFile
.
toURI
().
toASCIIString
();
m_xEmbedObj
=
createLinkObject
(
aFileURI
);
if
(
m_xEmbedObj
!=
null
)
{
m_aLinkURI
=
aFileURI
;
m_bLinkObj
=
true
;
try
{
m_xEmbedObj
.
setClientSite
(
EmbedContApp
.
this
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception in LinkObjectMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
}
generateNewImage
();
repaint
();
}
else
if
(
m_pActionsList
[
nInd
]
==
CONVERT_LINK_TO_OBJECT
)
{
if
(
!
m_bLinkObj
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
"The object is not a link!"
,
"Error:"
,
JOptionPane
.
ERROR_MESSAGE
);
return
;
}
if
(
m_xEmbedObj
!=
null
)
{
if
(
m_xStorage
!=
null
)
{
try
{
XNameAccess
xNameAccess
=
(
XNameAccess
)
UnoRuntime
.
queryInterface
(
XNameAccess
.
class
,
m_xStorage
);
if
(
xNameAccess
!=
null
&&
xNameAccess
.
hasByName
(
"LinkName"
)
)
m_xStorage
.
removeElement
(
"LinkName"
);
XLinkageSupport
xLinkage
=
(
XLinkageSupport
)
UnoRuntime
.
queryInterface
(
XLinkageSupport
.
class
,
m_xEmbedObj
);
if
(
xLinkage
!=
null
)
{
xLinkage
.
breakLink
(
m_xStorage
,
"EmbedSub"
);
m_bLinkObj
=
false
;
m_aLinkURI
=
null
;
}
else
JOptionPane
.
showMessageDialog
(
m_aFrame
,
"No XLinkageSupport in ConvertLink... !"
,
"Error:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
catch
(
Exception
e1
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
e1
,
"Exception in ConvertLinkToEmbed:try 1 :"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
}
else
{
System
.
out
.
println
(
"Unknoun action is requested: "
+
m_pActionsList
[
nInd
]
+
"\n"
);
}
}
m_nActionsNumber
=
0
;
}
}
public
void
actionRegister
(
byte
nActionID
)
{
synchronized
(
this
)
{
if
(
m_nActionsNumber
<
199
&&
(
m_nActionsNumber
==
0
||
m_pActionsList
[
m_nActionsNumber
-
1
]
!=
DESTROY
)
)
m_pActionsList
[
m_nActionsNumber
++
]
=
nActionID
;
}
}
public
void
destroy
()
{
// redirect the call through the timer and call super.destroy();
actionRegister
(
DESTROY
);
for
(
int
i
=
0
;
i
<
3
&&
!
m_bDestroyed
;
i
++
)
{
try
{
Thread
.
sleep
(
200
);
}
catch
(
Exception
e
)
{}
}
if
(
!
m_bDestroyed
)
System
.
out
.
println
(
"The object application can not exit correctly!"
);
m_aTimer
.
stop
();
super
.
destroy
();
}
public
void
update
(
Graphics
g
)
{
paint
(
g
);
...
...
@@ -186,17 +606,7 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie
{
if
(
e
.
getModifiers
()
==
InputEvent
.
BUTTON1_MASK
)
{
// activate object if exists and not active
if
(
m_xEmbedObj
!=
null
)
{
try
{
m_xEmbedObj
.
changeState
(
EmbedStates
.
EMBED_ACTIVE
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception on mouse click"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
actionRegister
(
MOUSE_CLICKED
);
}
}
...
...
@@ -247,10 +657,7 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie
public
void
actionPerformed
(
ActionEvent
e
)
{
// clear everything
clearObjectAndStorage
();
repaint
();
actionRegister
(
NEW_DOCUMENT
);
}
}
...
...
@@ -264,40 +671,7 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie
public
void
actionPerformed
(
ActionEvent
e
)
{
// open SaveAs dialog and store
if
(
m_xStorage
!=
null
&&
m_xEmbedObj
!=
null
)
{
FileDialog
aFileDialog
=
new
FileDialog
(
m_aFrame
,
"SaveAs"
,
FileDialog
.
SAVE
);
aFileDialog
.
show
();
if
(
aFileDialog
.
getFile
()
!=
null
)
{
String
aFileName
=
aFileDialog
.
getDirectory
()
+
aFileDialog
.
getFile
();
File
aFile
=
new
File
(
aFileName
);
if
(
aFile
!=
null
)
{
// create object from specified file
String
aFileURI
=
aFile
.
toURI
().
toASCIIString
();
try
{
saveObject
();
if
(
m_bLinkObj
)
storeLinkToStorage
();
saveStorageAsFileURI
(
aFileURI
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception in SaveAsMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
}
else
JOptionPane
.
showMessageDialog
(
m_aFrame
,
"No document is embedded!"
,
"Error:"
,
JOptionPane
.
ERROR_MESSAGE
);
actionRegister
(
SAVE_AS
);
}
}
...
...
@@ -311,42 +685,7 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie
public
void
actionPerformed
(
ActionEvent
e
)
{
// clear everything
clearObjectAndStorage
();
// open OpenFile dialog and load doc
FileDialog
aFileDialog
=
new
FileDialog
(
m_aFrame
,
"Open"
);
aFileDialog
.
show
();
if
(
aFileDialog
.
getFile
()
!=
null
)
{
String
aFileName
=
aFileDialog
.
getDirectory
()
+
aFileDialog
.
getFile
();
File
aFile
=
new
File
(
aFileName
);
if
(
aFile
!=
null
)
{
// create object from specified file
String
aFileURI
=
aFile
.
toURI
().
toASCIIString
();
// load from specified file
loadFileURI
(
aFileURI
);
if
(
m_xEmbedObj
!=
null
)
{
try
{
m_xEmbedObj
.
setClientSite
(
EmbedContApp
.
this
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception in OpenFileMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
}
generateNewImage
();
repaint
();
actionRegister
(
OPEN_FILE
);
}
}
...
...
@@ -360,73 +699,7 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie
public
void
actionPerformed
(
ActionEvent
e
)
{
// if has persistance store there
// if not open SaveAs dialog and store
if
(
m_xStorage
!=
null
&&
m_xEmbedObj
!=
null
)
{
if
(
m_bOwnFile
)
{
if
(
m_xStorage
==
null
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
"No storage for oned file!"
,
"Error:"
,
JOptionPane
.
ERROR_MESSAGE
);
return
;
}
try
{
saveObject
();
if
(
m_bLinkObj
)
storeLinkToStorage
();
XTransactedObject
xTransact
=
(
XTransactedObject
)
UnoRuntime
.
queryInterface
(
XTransactedObject
.
class
,
m_xStorage
);
if
(
xTransact
!=
null
)
xTransact
.
commit
();
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception during save operation in SaveMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
else
{
FileDialog
aFileDialog
=
new
FileDialog
(
m_aFrame
,
"SaveAs"
,
FileDialog
.
SAVE
);
aFileDialog
.
show
();
if
(
aFileDialog
.
getFile
()
!=
null
)
{
String
aFileName
=
aFileDialog
.
getDirectory
()
+
aFileDialog
.
getFile
();
File
aFile
=
new
File
(
aFileName
);
if
(
aFile
!=
null
)
{
// create object from specified file
String
aFileURI
=
aFile
.
toURI
().
toASCIIString
();
try
{
saveObject
();
if
(
m_bLinkObj
)
storeLinkToStorage
();
saveStorageAsFileURI
(
aFileURI
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception during 'save as' operation in SaveMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
}
}
else
JOptionPane
.
showMessageDialog
(
m_aFrame
,
"No document is embedded!"
,
"Error:"
,
JOptionPane
.
ERROR_MESSAGE
);
actionRegister
(
SAVE
);
}
}
...
...
@@ -440,51 +713,7 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie
public
void
actionPerformed
(
ActionEvent
e
)
{
// remove current object an init a new one
clearObjectAndStorage
();
Object
[]
possibleValues
=
{
"com.sun.star.comp.Writer.TextDocument"
,
"com.sun.star.comp.Writer.GlobalDocument"
,
"com.sun.star.comp.Writer.WebDocument"
,
"com.sun.star.comp.Calc.SpreadsheetDocument"
,
"com.sun.star.comp.Draw.PresentationDocument"
,
"com.sun.star.comp.Draw.DrawingDocument"
,
"com.sun.star.comp.Math.FormulaDocument"
};
String
selectedValue
=
(
String
)
JOptionPane
.
showInputDialog
(
null
,
"DocumentType"
,
"Select"
,
JOptionPane
.
INFORMATION_MESSAGE
,
null
,
possibleValues
,
possibleValues
[
0
]
);
if
(
selectedValue
!=
null
)
{
m_xStorage
=
createTempStorage
();
if
(
m_xStorage
!=
null
)
m_xEmbedObj
=
createEmbedObject
(
selectedValue
);
else
JOptionPane
.
showMessageDialog
(
m_aFrame
,
"Can't create temporary storage!"
,
"Error:"
,
JOptionPane
.
ERROR_MESSAGE
);
if
(
m_xEmbedObj
!=
null
)
{
try
{
m_xEmbedObj
.
setClientSite
(
EmbedContApp
.
this
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception in NewObjectMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
generateNewImage
();
repaint
();
actionRegister
(
NEW_OBJECT
);
}
}
...
...
@@ -498,43 +727,7 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie
public
void
actionPerformed
(
ActionEvent
e
)
{
// first remove current object
clearObjectAndStorage
();
// open OpenFile dialog and load doc
FileDialog
aFileDialog
=
new
FileDialog
(
m_aFrame
,
"Select sources to use for object init"
);
aFileDialog
.
show
();
if
(
aFileDialog
.
getFile
()
!=
null
)
{
String
aFileName
=
aFileDialog
.
getDirectory
()
+
aFileDialog
.
getFile
();
File
aFile
=
new
File
(
aFileName
);
if
(
aFile
!=
null
)
{
// create object from specified file
String
aFileURI
=
aFile
.
toURI
().
toASCIIString
();
m_xStorage
=
createTempStorage
();
if
(
m_xStorage
!=
null
)
m_xEmbedObj
=
loadEmbedObject
(
aFileURI
);
if
(
m_xEmbedObj
!=
null
)
{
try
{
m_xEmbedObj
.
setClientSite
(
EmbedContApp
.
this
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception in LoadObjectMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
}
generateNewImage
();
repaint
();
actionRegister
(
OBJECT_FROM_FILE
);
}
}
...
...
@@ -548,46 +741,7 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie
public
void
actionPerformed
(
ActionEvent
e
)
{
// first remove current object
clearObjectAndStorage
();
// open OpenFile dialog and load doc
FileDialog
aFileDialog
=
new
FileDialog
(
m_aFrame
,
"Select sources to use for object init"
);
aFileDialog
.
show
();
if
(
aFileDialog
.
getFile
()
!=
null
)
{
m_xStorage
=
createTempStorage
();
String
aFileName
=
aFileDialog
.
getDirectory
()
+
aFileDialog
.
getFile
();
File
aFile
=
new
File
(
aFileName
);
if
(
aFile
!=
null
)
{
// create object from specified file
String
aFileURI
=
aFile
.
toURI
().
toASCIIString
();
m_xEmbedObj
=
createLinkObject
(
aFileURI
);
if
(
m_xEmbedObj
!=
null
)
{
m_aLinkURI
=
aFileURI
;
m_bLinkObj
=
true
;
try
{
m_xEmbedObj
.
setClientSite
(
EmbedContApp
.
this
);
}
catch
(
Exception
ex
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
ex
,
"Exception in LinkObjectMenuItem:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
}
generateNewImage
();
repaint
();
actionRegister
(
LINK_FROM_FILE
);
}
}
...
...
@@ -601,45 +755,7 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie
public
void
actionPerformed
(
ActionEvent
e
)
{
if
(
!
m_bLinkObj
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
"The object is not a link!"
,
"Error:"
,
JOptionPane
.
ERROR_MESSAGE
);
return
;
}
if
(
m_xEmbedObj
!=
null
)
{
if
(
m_xStorage
!=
null
)
{
try
{
XNameAccess
xNameAccess
=
(
XNameAccess
)
UnoRuntime
.
queryInterface
(
XNameAccess
.
class
,
m_xStorage
);
if
(
xNameAccess
!=
null
&&
xNameAccess
.
hasByName
(
"LinkName"
)
)
m_xStorage
.
removeElement
(
"LinkName"
);
XLinkageSupport
xLinkage
=
(
XLinkageSupport
)
UnoRuntime
.
queryInterface
(
XLinkageSupport
.
class
,
m_xEmbedObj
);
if
(
xLinkage
!=
null
)
{
xLinkage
.
breakLink
(
m_xStorage
,
"EmbedSub"
);
m_bLinkObj
=
false
;
m_aLinkURI
=
null
;
}
else
JOptionPane
.
showMessageDialog
(
m_aFrame
,
"No XLinkageSupport in ConvertLink... !"
,
"Error:"
,
JOptionPane
.
ERROR_MESSAGE
);
}
catch
(
Exception
e1
)
{
JOptionPane
.
showMessageDialog
(
m_aFrame
,
e1
,
"Exception in ConvertLinkToEmbed:try 1 :"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
actionRegister
(
CONVERT_LINK_TO_OBJECT
);
}
}
...
...
@@ -698,6 +814,13 @@ public class EmbedContApp extends Applet implements MouseListener, XEmbeddedClie
for
(
int
ind
=
0
;
ind
<
16
;
ind
++
)
pClassID
[
ind
]
=
(
byte
)
pTempClassID
[
ind
];
}
else
if
(
aServiceName
.
equals
(
"BitmapImage"
)
)
{
int
[]
pTempClassID
=
{
0xD3
,
0xE3
,
0x4B
,
0x21
,
0x9D
,
0x75
,
0x10
,
0x1A
,
0x8C
,
0x3D
,
0x00
,
0xAA
,
0x00
,
0x1A
,
0x16
,
0x52
};
for
(
int
ind
=
0
;
ind
<
16
;
ind
++
)
pClassID
[
ind
]
=
(
byte
)
pTempClassID
[
ind
];
}
if
(
pClassID
!=
null
)
{
...
...
embeddedobj/util/makefile.mk
Dosyayı görüntüle @
aec29756
...
...
@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
# $Revision: 1.
2
$
# $Revision: 1.
3
$
#
# last change: $Author: mav $ $Date: 2003-1
0-29 08:32:00
$
# last change: $Author: mav $ $Date: 2003-1
1-14 15:24:28
$
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
...
...
@@ -88,12 +88,27 @@ SHL1OBJS= \
$(SLO)$/
closepreventer.obj
\
$(SLO)$/
intercept.obj
SHL1OBJS
+=
\
$(SLO)$/
olecomponent.obj
\
$(SLO)$/
olepersist.obj
\
$(SLO)$/
oleembed.obj
\
$(SLO)$/
olevisual.obj
\
$(SLO)$/
olemisc.obj
\
$(SLO)$/
olewrapclient.obj
\
$(SLO)$/
advisesink.obj
SHL1STDLIBS
=
\
$(SALLIB)
\
$(CPPULIB)
\
$(CPPUHELPERLIB)
SHL1STDLIBS
+=
\
ole32.lib
\
gdi32.lib
\
uuid.lib
\
oleaut32.lib
SHL1DEF
=
$(MISC)$/$(SHL1TARGET)
.def
DEF1NAME
=
$(SHL1TARGET)
...
...
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