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
358050da
Kaydet (Commit)
358050da
authored
Agu 16, 2012
tarafından
Liu Zhe
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
#120527# - [QA TASK]Write test scripts about Presentation Shape via UNO API
Patch by: Wang Li Feng Review by:Liu Zhe
üst
a535dd7e
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
673 additions
and
0 deletions
+673
-0
ShapeProperties.java
test/testuno/source/testcase/uno/sd/ShapeProperties.java
+280
-0
PageUtil.java
test/testuno/source/testlib/uno/PageUtil.java
+231
-0
ShapeUtil.java
test/testuno/source/testlib/uno/ShapeUtil.java
+162
-0
No files found.
test/testuno/source/testcase/uno/sd/ShapeProperties.java
0 → 100644
Dosyayı görüntüle @
358050da
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
package
testcase
.
uno
.
sd
;
import
java.io.File
;
import
java.io.IOException
;
import
org.junit.After
;
import
static
org
.
junit
.
Assert
.*;
import
org.junit.AfterClass
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.openoffice.test.uno.UnoApp
;
import
org.openoffice.test.common.FileUtil
;
import
org.openoffice.test.common.Testspace
;
import
testlib.uno.PageUtil
;
import
testlib.uno.ShapeUtil
;
import
com.sun.star.uno.UnoRuntime
;
import
com.sun.star.presentation.XPresentation
;
import
com.sun.star.presentation.XPresentationSupplier
;
import
com.sun.star.awt.Gradient
;
import
com.sun.star.awt.GradientStyle
;
import
com.sun.star.awt.Size
;
import
com.sun.star.awt.Point
;
import
com.sun.star.beans.PropertyValue
;
import
com.sun.star.beans.XPropertySet
;
import
com.sun.star.drawing.FillStyle
;
import
com.sun.star.drawing.Hatch
;
import
com.sun.star.drawing.HatchStyle
;
import
com.sun.star.drawing.XDrawPage
;
import
com.sun.star.drawing.XDrawPages
;
import
com.sun.star.drawing.XDrawPagesSupplier
;
import
com.sun.star.drawing.XShape
;
import
com.sun.star.drawing.XShapes
;
import
com.sun.star.frame.XComponentLoader
;
import
com.sun.star.frame.XStorable
;
import
com.sun.star.lang.XComponent
;
import
com.sun.star.lang.XMultiServiceFactory
;
public
class
ShapeProperties
{
UnoApp
unoApp
=
new
UnoApp
();
XPresentationSupplier
sdDocument
=
null
;
XPresentation
pre
=
null
;
XComponent
precomp
=
null
;
XComponent
impressDocument
=
null
;
XComponent
reLoadFile
=
null
;
XDrawPagesSupplier
drawsupplier
=
null
;
XDrawPages
drawpages
=
null
;
XShapes
xShapes
=
null
;
XDrawPage
xpage
=
null
;
String
filePath
=
null
;
@Before
public
void
setUp
()
throws
Exception
{
unoApp
.
start
();
createDocumentAndSlide
();
}
@After
public
void
tearDown
()
throws
Exception
{
unoApp
.
closeDocument
(
impressDocument
);
unoApp
.
closeDocument
(
reLoadFile
);
unoApp
.
close
();
if
(
filePath
!=
null
)
FileUtil
.
deleteFile
(
filePath
);
}
/**
* test Insert a new slide and Insert a new EllipseShape
*
* @throws Exception
*/
@Test
public
void
testInsertShape
()
throws
Exception
{
Point
po
=
new
Point
(
1000
,
8000
);
xShapes
=
(
XShapes
)
UnoRuntime
.
queryInterface
(
XShapes
.
class
,
xpage
);
XShape
xShape
=
ShapeUtil
.
createShape
(
impressDocument
,
po
,
new
Size
(
5000
,
5000
),
"com.sun.star.drawing.EllipseShape"
);
xShapes
.
add
(
xShape
);
XPropertySet
xPropSet
=
(
XPropertySet
)
UnoRuntime
.
queryInterface
(
XPropertySet
.
class
,
xShape
);
xPropSet
.
setPropertyValue
(
"Name"
,
"test"
);
XShape
shap
=
ShapeUtil
.
getShape
(
impressDocument
,
po
,
"com.sun.star.drawing.EllipseShape"
);
XPropertySet
xPropSet2
=
(
XPropertySet
)
UnoRuntime
.
queryInterface
(
XPropertySet
.
class
,
xShape
);
assertEquals
(
"Not the same shape"
,
"test"
,
xPropSet2
.
getPropertyValue
(
"Name"
));
assertEquals
(
"Not EllopseShape"
,
"com.sun.star.drawing.EllipseShape"
,
shap
.
getShapeType
());
}
/**
* test Insert text to an EllopseShape
*
* @throws Exception
*/
@Test
public
void
testInsertTextToShape
()
throws
Exception
{
Point
po
=
new
Point
(
1000
,
8000
);
xShapes
=
(
XShapes
)
UnoRuntime
.
queryInterface
(
XShapes
.
class
,
xpage
);
XShape
xShape
=
ShapeUtil
.
createShape
(
impressDocument
,
po
,
new
Size
(
5000
,
5000
),
"com.sun.star.drawing.EllipseShape"
);
xShapes
.
add
(
xShape
);
ShapeUtil
.
addPortion
(
xShape
,
"test"
,
false
);
assertEquals
(
"Not put text correctly"
,
"test"
,
ShapeUtil
.
getPortion
(
xShape
));
}
/**
* test Shape fill with Gradient
*
* @throws Exception
*/
@Test
public
void
testShapeFillGradient
()
throws
Exception
{
Point
po
=
new
Point
(
1000
,
8000
);
xShapes
=
(
XShapes
)
UnoRuntime
.
queryInterface
(
XShapes
.
class
,
xpage
);
XShape
xShape
=
ShapeUtil
.
createShape
(
impressDocument
,
po
,
new
Size
(
5000
,
5000
),
"com.sun.star.drawing.EllipseShape"
);
xShapes
.
add
(
xShape
);
XPropertySet
xPropSet
=
(
XPropertySet
)
UnoRuntime
.
queryInterface
(
XPropertySet
.
class
,
xShape
);
xPropSet
.
setPropertyValue
(
"FillStyle"
,
FillStyle
.
GRADIENT
);
Gradient
aGradient
=
new
Gradient
();
aGradient
.
Style
=
GradientStyle
.
LINEAR
;
aGradient
.
StartColor
=
0x00ff00
;
aGradient
.
EndColor
=
0xffff00
;
aGradient
.
Angle
=
450
;
aGradient
.
Border
=
0
;
aGradient
.
XOffset
=
0
;
aGradient
.
YOffset
=
0
;
aGradient
.
StartIntensity
=
100
;
aGradient
.
EndIntensity
=
100
;
aGradient
.
StepCount
=
10
;
xPropSet
.
setPropertyValue
(
"FillGradient"
,
aGradient
);
// --------------------------
xShape
=
saveAndLoadShape
(
po
,
"com.sun.star.drawing.EllipseShape"
);
// ----------------------------
assertEquals
(
"Not Gradient Fill Style"
,
FillStyle
.
GRADIENT
,
xPropSet
.
getPropertyValue
(
"FillStyle"
));
aGradient
=(
Gradient
)
xPropSet
.
getPropertyValue
(
"FillGradient"
);
assertEquals
(
"Not Linear Gradient"
,
GradientStyle
.
LINEAR
,
aGradient
.
Style
);
}
/**
* test Shape fill with yellow color
*
* @throws Exception
*/
@Test
public
void
testShapeFillColor
()
throws
Exception
{
Point
po
=
new
Point
(
1000
,
8000
);
xShapes
=
(
XShapes
)
UnoRuntime
.
queryInterface
(
XShapes
.
class
,
xpage
);
XShape
xShape
=
ShapeUtil
.
createShape
(
impressDocument
,
po
,
new
Size
(
5000
,
5000
),
"com.sun.star.drawing.EllipseShape"
);
xShapes
.
add
(
xShape
);
XPropertySet
xPropSet
=
(
XPropertySet
)
UnoRuntime
.
queryInterface
(
XPropertySet
.
class
,
xShape
);
xPropSet
.
setPropertyValue
(
"FillStyle"
,
FillStyle
.
SOLID
);
xPropSet
.
setPropertyValue
(
"FillColor"
,
0xffff00
);
// --------------------------
xShape
=
saveAndLoadShape
(
po
,
"com.sun.star.drawing.EllipseShape"
);
// ----------------------------------------------------
assertEquals
(
"Not Color Fill Style"
,
FillStyle
.
SOLID
,
xPropSet
.
getPropertyValue
(
"FillStyle"
));
assertEquals
(
"Not Yellow Color Fill"
,
0xffff00
,
xPropSet
.
getPropertyValue
(
"FillColor"
));
}
/**
* test shape fill with Hatch Style(Pattern in MS)
* @throws Exception
*/
@Test
public
void
testShapeFillHatch
()
throws
Exception
{
Point
po
=
new
Point
(
1000
,
8000
);
xShapes
=
(
XShapes
)
UnoRuntime
.
queryInterface
(
XShapes
.
class
,
xpage
);
XShape
xShape
=
ShapeUtil
.
createShape
(
impressDocument
,
po
,
new
Size
(
5000
,
5000
),
"com.sun.star.drawing.EllipseShape"
);
xShapes
.
add
(
xShape
);
XPropertySet
xPropSet
=
(
XPropertySet
)
UnoRuntime
.
queryInterface
(
XPropertySet
.
class
,
xShape
);
xPropSet
.
setPropertyValue
(
"FillStyle"
,
FillStyle
.
HATCH
);
Hatch
aHatch
=
new
Hatch
();
aHatch
.
Style
=
HatchStyle
.
DOUBLE
;
aHatch
.
Color
=
0x00ff00
;
aHatch
.
Distance
=
100
;
aHatch
.
Angle
=
450
;
xPropSet
.
setPropertyValue
(
"FillHatch"
,
aHatch
);
// --------------------------
xShape
=
saveAndLoadShape
(
po
,
"com.sun.star.drawing.EllipseShape"
);
// ----------------------------
assertEquals
(
"Not Gradient Fill Style"
,
FillStyle
.
HATCH
,
xPropSet
.
getPropertyValue
(
"FillStyle"
));
aHatch
=(
Hatch
)
xPropSet
.
getPropertyValue
(
"FillHatch"
);
assertEquals
(
"Not Double Hatch"
,
HatchStyle
.
DOUBLE
,
aHatch
.
Style
);
}
/**
* create a new presentation document and insert a new slide.
*
* @throws Exception
*/
public
void
createDocumentAndSlide
()
throws
Exception
{
impressDocument
=
(
XComponent
)
UnoRuntime
.
queryInterface
(
XComponent
.
class
,
unoApp
.
newDocument
(
"simpress"
));
drawsupplier
=
(
XDrawPagesSupplier
)
UnoRuntime
.
queryInterface
(
XDrawPagesSupplier
.
class
,
impressDocument
);
drawpages
=
drawsupplier
.
getDrawPages
();
drawpages
.
insertNewByIndex
(
1
);
xpage
=
PageUtil
.
getDrawPageByIndex
(
impressDocument
,
1
);
}
/**
* Save presentation and reLoad the presentation and shape in it.
*
* @param po
* @param shapeType
* @return
* @throws Exception
*/
public
XShape
saveAndLoadShape
(
Point
po
,
String
shapeType
)
throws
Exception
{
reLoadFile
=
saveAndReloadDoc
(
impressDocument
,
"StarOffice XML (Impress)"
,
"odp"
);
drawsupplier
=
(
XDrawPagesSupplier
)
UnoRuntime
.
queryInterface
(
XDrawPagesSupplier
.
class
,
reLoadFile
);
drawpages
=
drawsupplier
.
getDrawPages
();
xpage
=
PageUtil
.
getDrawPageByIndex
(
impressDocument
,
1
);
xShapes
=
(
XShapes
)
UnoRuntime
.
queryInterface
(
XShapes
.
class
,
xpage
);
XShape
shap
=
ShapeUtil
.
getShape
(
impressDocument
,
po
,
"com.sun.star.drawing.EllipseShape"
);
return
shap
;
}
/**
* save and reload Presentation document.
*
* @param presentationDocument
* @param sFilter
* @param sExtension
* @return
* @throws Exception
*/
private
XComponent
saveAndReloadDoc
(
XComponent
presentationDocument
,
String
sFilter
,
String
sExtension
)
throws
Exception
{
filePath
=
Testspace
.
getPath
(
"tmp/presentationtest."
+
sExtension
);
PropertyValue
[]
aStoreProperties
=
new
PropertyValue
[
2
];
aStoreProperties
[
0
]
=
new
PropertyValue
();
aStoreProperties
[
1
]
=
new
PropertyValue
();
aStoreProperties
[
0
].
Name
=
"Override"
;
aStoreProperties
[
0
].
Value
=
true
;
aStoreProperties
[
1
].
Name
=
"FilterName"
;
aStoreProperties
[
1
].
Value
=
sFilter
;
XStorable
xStorable
=
(
XStorable
)
UnoRuntime
.
queryInterface
(
XStorable
.
class
,
presentationDocument
);
xStorable
.
storeToURL
(
FileUtil
.
getUrl
(
filePath
),
aStoreProperties
);
return
UnoRuntime
.
queryInterface
(
XComponent
.
class
,
unoApp
.
loadDocument
(
filePath
));
}
}
test/testuno/source/testlib/uno/PageUtil.java
0 → 100644
Dosyayı görüntüle @
358050da
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
package
testlib
.
uno
;
import
com.sun.star.uno.UnoRuntime
;
import
com.sun.star.lang.XComponent
;
import
com.sun.star.lang.XServiceInfo
;
import
com.sun.star.awt.Size
;
import
com.sun.star.beans.XPropertySet
;
import
com.sun.star.drawing.XDrawPage
;
import
com.sun.star.drawing.XDrawPages
;
import
com.sun.star.drawing.XDrawPagesSupplier
;
import
com.sun.star.drawing.XMasterPageTarget
;
import
com.sun.star.drawing.XMasterPagesSupplier
;
import
com.sun.star.presentation.XPresentationPage
;
import
com.sun.star.presentation.XHandoutMasterSupplier
;
public
class
PageUtil
{
/**
* Get the page count for standard pages
*
* @param xComponent
* : The presentation document
* @return slide count
*/
static
public
int
getDrawPageCount
(
XComponent
xComponent
)
{
XDrawPagesSupplier
xDrawPagesSupplier
=
(
XDrawPagesSupplier
)
UnoRuntime
.
queryInterface
(
XDrawPagesSupplier
.
class
,
xComponent
);
XDrawPages
xDrawPages
=
xDrawPagesSupplier
.
getDrawPages
();
return
xDrawPages
.
getCount
();
}
/**
* Get draw page by index
*
* @param xComponent
* : The presentation document
* @param nIndex
* : index of slide pages, from 0 or 1?
* @return Page of corresponding index.
*/
static
public
XDrawPage
getDrawPageByIndex
(
XComponent
xComponent
,
int
nIndex
)
throws
com
.
sun
.
star
.
lang
.
IndexOutOfBoundsException
,
com
.
sun
.
star
.
lang
.
WrappedTargetException
{
XDrawPagesSupplier
xDrawPagesSupplier
=
(
XDrawPagesSupplier
)
UnoRuntime
.
queryInterface
(
XDrawPagesSupplier
.
class
,
xComponent
);
XDrawPages
xDrawPages
=
xDrawPagesSupplier
.
getDrawPages
();
return
(
XDrawPage
)
UnoRuntime
.
queryInterface
(
XDrawPage
.
class
,
xDrawPages
.
getByIndex
(
nIndex
));
}
/**
* Create and insert a draw page into the giving position,the method returns
* the new created page
*
* @param xComponent
* :The Presentation Document
* @param nIndex
* :The index at which page will be inserted.
* @return The newly created page.
*/
static
public
XDrawPage
insertNewDrawPageByIndex
(
XComponent
xComponent
,
int
nIndex
)
throws
Exception
{
XDrawPagesSupplier
xDrawPagesSupplier
=
(
XDrawPagesSupplier
)
UnoRuntime
.
queryInterface
(
XDrawPagesSupplier
.
class
,
xComponent
);
XDrawPages
xDrawPages
=
xDrawPagesSupplier
.
getDrawPages
();
return
xDrawPages
.
insertNewByIndex
(
nIndex
);
}
/**
* Remove the given page
*
* @param xComponent
* : The Presentation Document
* @param xDrawPage
* : The page want to be removed.
*/
static
public
void
removeDrawPage
(
XComponent
xComponent
,
XDrawPage
xDrawPage
)
{
XDrawPagesSupplier
xDrawPagesSupplier
=
(
XDrawPagesSupplier
)
UnoRuntime
.
queryInterface
(
XDrawPagesSupplier
.
class
,
xComponent
);
XDrawPages
xDrawPages
=
xDrawPagesSupplier
.
getDrawPages
();
xDrawPages
.
remove
(
xDrawPage
);
}
/**
* Get size of the given page
*
* @param xDrawPage
* : The specified target page
* @return specifies the 2-dimensional size of the page using width and
* height.
*/
static
public
Size
getPageSize
(
XDrawPage
xDrawPage
)
throws
com
.
sun
.
star
.
beans
.
UnknownPropertyException
,
com
.
sun
.
star
.
lang
.
WrappedTargetException
{
XPropertySet
xPageProperties
=
(
XPropertySet
)
UnoRuntime
.
queryInterface
(
XPropertySet
.
class
,
xDrawPage
);
return
new
Size
(
((
Integer
)
xPageProperties
.
getPropertyValue
(
"Width"
))
.
intValue
(),
((
Integer
)
xPageProperties
.
getPropertyValue
(
"Height"
))
.
intValue
());
}
/**
* Get the page count for master pages
*
* @param xComponent
* : The presentation document
* @return Count of master pages.
*/
static
public
int
getMasterPageCount
(
XComponent
xComponent
)
{
XMasterPagesSupplier
xMasterPagesSupplier
=
(
XMasterPagesSupplier
)
UnoRuntime
.
queryInterface
(
XMasterPagesSupplier
.
class
,
xComponent
);
XDrawPages
xDrawPages
=
xMasterPagesSupplier
.
getMasterPages
();
return
xDrawPages
.
getCount
();
}
/**
* Get master page by index
*
* @param xComponent
* : The Presentation document
* @param nIndex
* : Index of target master page.
* @return Page of
*/
static
public
XDrawPage
getMasterPageByIndex
(
XComponent
xComponent
,
int
nIndex
)
throws
com
.
sun
.
star
.
lang
.
IndexOutOfBoundsException
,
com
.
sun
.
star
.
lang
.
WrappedTargetException
{
XMasterPagesSupplier
xMasterPagesSupplier
=
(
XMasterPagesSupplier
)
UnoRuntime
.
queryInterface
(
XMasterPagesSupplier
.
class
,
xComponent
);
XDrawPages
xDrawPages
=
xMasterPagesSupplier
.
getMasterPages
();
return
(
XDrawPage
)
UnoRuntime
.
queryInterface
(
XDrawPage
.
class
,
xDrawPages
.
getByIndex
(
nIndex
));
}
/**
* creates and inserts a new master page into the giving position, the
* method returns the new created page
*/
static
public
XDrawPage
insertNewMasterPageByIndex
(
XComponent
xComponent
,
int
nIndex
)
{
XMasterPagesSupplier
xMasterPagesSupplier
=
(
XMasterPagesSupplier
)
UnoRuntime
.
queryInterface
(
XMasterPagesSupplier
.
class
,
xComponent
);
XDrawPages
xDrawPages
=
xMasterPagesSupplier
.
getMasterPages
();
return
xDrawPages
.
insertNewByIndex
(
nIndex
);
}
/**
* removes the given page
*/
static
public
void
removeMasterPage
(
XComponent
xComponent
,
XDrawPage
xDrawPage
)
{
XMasterPagesSupplier
xMasterPagesSupplier
=
(
XMasterPagesSupplier
)
UnoRuntime
.
queryInterface
(
XMasterPagesSupplier
.
class
,
xComponent
);
XDrawPages
xDrawPages
=
xMasterPagesSupplier
.
getMasterPages
();
xDrawPages
.
remove
(
xDrawPage
);
}
/**
* return the corresponding masterpage for the giving drawpage
*/
static
public
XDrawPage
getMasterPage
(
XDrawPage
xDrawPage
)
{
XMasterPageTarget
xMasterPageTarget
=
(
XMasterPageTarget
)
UnoRuntime
.
queryInterface
(
XMasterPageTarget
.
class
,
xDrawPage
);
return
xMasterPageTarget
.
getMasterPage
();
}
/**
* sets given masterpage at the drawpage
*/
static
public
void
setMasterPage
(
XDrawPage
xDrawPage
,
XDrawPage
xMasterPage
)
{
XMasterPageTarget
xMasterPageTarget
=
(
XMasterPageTarget
)
UnoRuntime
.
queryInterface
(
XMasterPageTarget
.
class
,
xDrawPage
);
xMasterPageTarget
.
setMasterPage
(
xMasterPage
);
}
// __________ presentation pages __________
/**
* test if a Presentation Document is supported. This is important, because
* only presentation documents have notes and handout pages
*/
static
public
boolean
isImpressDocument
(
XComponent
xComponent
)
{
XServiceInfo
xInfo
=
(
XServiceInfo
)
UnoRuntime
.
queryInterface
(
XServiceInfo
.
class
,
xComponent
);
return
xInfo
.
supportsService
(
"com.sun.star.presentation.PresentationDocument"
);
}
/**
* in impress documents each normal draw page has a corresponding notes page
*/
static
public
XDrawPage
getNotesPage
(
XDrawPage
xDrawPage
)
{
XPresentationPage
aPresentationPage
=
(
XPresentationPage
)
UnoRuntime
.
queryInterface
(
XPresentationPage
.
class
,
xDrawPage
);
return
aPresentationPage
.
getNotesPage
();
}
/**
* in impress each documents has one handout page
*/
static
public
XDrawPage
getHandoutMasterPage
(
XComponent
xComponent
)
{
XHandoutMasterSupplier
aHandoutMasterSupplier
=
(
XHandoutMasterSupplier
)
UnoRuntime
.
queryInterface
(
XHandoutMasterSupplier
.
class
,
xComponent
);
return
aHandoutMasterSupplier
.
getHandoutMasterPage
();
}
}
test/testuno/source/testlib/uno/ShapeUtil.java
0 → 100644
Dosyayı görüntüle @
358050da
package
testlib
.
uno
;
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
// __________ Imports __________
import
com.sun.star.uno.Exception
;
import
com.sun.star.uno.UnoRuntime
;
import
com.sun.star.lang.XComponent
;
import
com.sun.star.lang.XMultiServiceFactory
;
import
com.sun.star.awt.Point
;
import
com.sun.star.awt.Size
;
import
com.sun.star.beans.XPropertySet
;
import
com.sun.star.container.XEnumeration
;
import
com.sun.star.container.XEnumerationAccess
;
import
com.sun.star.drawing.XShape
;
import
com.sun.star.drawing.XShapes
;
import
com.sun.star.text.ControlCharacter
;
import
com.sun.star.text.XText
;
import
com.sun.star.text.XTextCursor
;
import
com.sun.star.text.XTextContent
;
import
com.sun.star.text.XTextRange
;
public
class
ShapeUtil
{
// __________ static helper methods __________
//
public
static
XPropertySet
createAndInsertShape
(
XComponent
xDrawDoc
,
XShapes
xShapes
,
Point
aPos
,
Size
aSize
,
String
sShapeType
)
throws
java
.
lang
.
Exception
{
XShape
xShape
=
createShape
(
xDrawDoc
,
aPos
,
aSize
,
sShapeType
);
xShapes
.
add
(
xShape
);
XPropertySet
xPropSet
=
(
XPropertySet
)
UnoRuntime
.
queryInterface
(
XPropertySet
.
class
,
xShape
);
return
xPropSet
;
}
/**
* create a Shape
*/
public
static
XShape
createShape
(
XComponent
xDrawDoc
,
Point
aPos
,
Size
aSize
,
String
sShapeType
)
throws
java
.
lang
.
Exception
{
XShape
xShape
=
null
;
XMultiServiceFactory
xFactory
=
(
XMultiServiceFactory
)
UnoRuntime
.
queryInterface
(
XMultiServiceFactory
.
class
,
xDrawDoc
);
Object
xObj
=
xFactory
.
createInstance
(
sShapeType
);
xShape
=
(
XShape
)
UnoRuntime
.
queryInterface
(
XShape
.
class
,
xObj
);
xShape
.
setPosition
(
aPos
);
xShape
.
setSize
(
aSize
);
return
xShape
;
}
/**
* try to get shape according position
*
* @param aPos
* @return
*/
public
static
XShape
getShape
(
XComponent
xDrawDoc
,
Point
aPos
,
String
sShapeType
)
{
XShape
xShape
=
null
;
try
{
XMultiServiceFactory
xFactory
=
(
XMultiServiceFactory
)
UnoRuntime
.
queryInterface
(
XMultiServiceFactory
.
class
,
xDrawDoc
);
Object
xObj
=
xFactory
.
createInstance
(
sShapeType
);
xShape
=
(
XShape
)
UnoRuntime
.
queryInterface
(
XShape
.
class
,
xObj
);
}
catch
(
Exception
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
return
xShape
;
}
/**
* add text to a shape. the return value is the PropertySet of the text
* range that has been added
*/
public
static
XPropertySet
addPortion
(
XShape
xShape
,
String
sText
,
boolean
bNewParagraph
)
throws
com
.
sun
.
star
.
lang
.
IllegalArgumentException
{
XText
xText
=
(
XText
)
UnoRuntime
.
queryInterface
(
XText
.
class
,
xShape
);
XTextCursor
xTextCursor
=
xText
.
createTextCursor
();
xTextCursor
.
gotoEnd
(
false
);
if
(
bNewParagraph
==
true
)
{
xText
.
insertControlCharacter
(
xTextCursor
,
ControlCharacter
.
PARAGRAPH_BREAK
,
false
);
xTextCursor
.
gotoEnd
(
false
);
}
XTextRange
xTextRange
=
(
XTextRange
)
UnoRuntime
.
queryInterface
(
XTextRange
.
class
,
xTextCursor
);
xTextRange
.
setString
(
sText
);
xTextCursor
.
gotoEnd
(
true
);
XPropertySet
xPropSet
=
(
XPropertySet
)
UnoRuntime
.
queryInterface
(
XPropertySet
.
class
,
xTextRange
);
return
xPropSet
;
}
/**
* try to get text of a shape
*
* @return
*/
public
static
String
getPortion
(
XShape
xShape
)
{
String
text
=
null
;
XText
xText
=
(
XText
)
UnoRuntime
.
queryInterface
(
XText
.
class
,
xShape
);
XTextCursor
xTextCursor
=
xText
.
createTextCursor
();
XTextRange
xTextRange
=
(
XTextRange
)
UnoRuntime
.
queryInterface
(
XTextRange
.
class
,
xTextCursor
);
text
=
xTextRange
.
getString
();
return
text
;
}
public
static
void
setPropertyForLastParagraph
(
XShape
xText
,
String
sPropName
,
Object
aValue
)
throws
com
.
sun
.
star
.
beans
.
UnknownPropertyException
,
com
.
sun
.
star
.
beans
.
PropertyVetoException
,
com
.
sun
.
star
.
lang
.
IllegalArgumentException
,
com
.
sun
.
star
.
lang
.
WrappedTargetException
,
com
.
sun
.
star
.
container
.
NoSuchElementException
{
XEnumerationAccess
xEnumerationAccess
=
(
XEnumerationAccess
)
UnoRuntime
.
queryInterface
(
XEnumerationAccess
.
class
,
xText
);
if
(
xEnumerationAccess
.
hasElements
())
{
XEnumeration
xEnumeration
=
xEnumerationAccess
.
createEnumeration
();
while
(
xEnumeration
.
hasMoreElements
())
{
Object
xObj
=
xEnumeration
.
nextElement
();
if
(
xEnumeration
.
hasMoreElements
()
==
false
)
{
XTextContent
xTextContent
=
(
XTextContent
)
UnoRuntime
.
queryInterface
(
XTextContent
.
class
,
xObj
);
XPropertySet
xParaPropSet
=
(
XPropertySet
)
UnoRuntime
.
queryInterface
(
XPropertySet
.
class
,
xTextContent
);
xParaPropSet
.
setPropertyValue
(
sPropName
,
aValue
);
}
}
}
}
}
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