use of org.geotools.styling.OtherTextImpl in project sldeditor by robward-scisys.
the class VOGeoServerTextSymbolizer2Test method testVOGeoServerTextSymbolizer2.
/**
* Test method for
* {@link com.sldeditor.ui.detail.vendor.geoserver.text.VOGeoServerTextSymbolizer2#VOGeoServerTextSymbolizer2(java.lang.Class, com.sldeditor.filter.v2.function.FunctionNameInterface)}.
*/
@Test
public void testVOGeoServerTextSymbolizer2() {
TextSymbolizerDetails panel = new TextSymbolizerDetails();
TextSymbolizer2 textSymbolizer = null;
VOGeoServerTextSymbolizer2 testObj = new VOGeoServerTextSymbolizer2(panel.getClass());
testObj.setParentPanel(panel);
testObj.populate(textSymbolizer);
testObj.updateSymbol(textSymbolizer);
StyleFactoryImpl styleFactory = (StyleFactoryImpl) CommonFactoryFinder.getStyleFactory();
textSymbolizer = (TextSymbolizer2) styleFactory.createTextSymbolizer();
FilterFactory ff = CommonFactoryFinder.getFilterFactory();
Literal featureDescription = ff.literal("feature description");
textSymbolizer.setFeatureDescription(featureDescription);
OtherText otherText = new OtherTextImpl();
otherText.setTarget("target");
Literal otherTextExpression = ff.literal("other text");
otherText.setText(otherTextExpression);
textSymbolizer.setOtherText(otherText);
Literal snippet = ff.literal("snippet");
textSymbolizer.setSnippet(snippet);
// Try with marker symbol
Graphic graphic = styleFactory.createDefaultGraphic();
graphic.graphicalSymbols().add(styleFactory.createMark());
textSymbolizer.setGraphic(graphic);
Controller.getInstance().setPopulating(true);
testObj.populate(textSymbolizer);
Controller.getInstance().setPopulating(false);
testObj.updateSymbol(textSymbolizer);
// Try with external graphic
graphic = styleFactory.createDefaultGraphic();
try {
graphic.graphicalSymbols().add(styleFactory.createExternalGraphic(new File("test.png").toURI().toURL(), "png"));
} catch (MalformedURLException e) {
e.printStackTrace();
}
textSymbolizer.setGraphic(graphic);
Controller.getInstance().setPopulating(true);
testObj.populate(textSymbolizer);
Controller.getInstance().setPopulating(false);
testObj.updateSymbol(textSymbolizer);
// Find minimum version with textSymbolizer2 values set
List<VendorOptionPresent> vendorOptionsPresentList = new ArrayList<VendorOptionPresent>();
testObj.getMinimumVersion(null, textSymbolizer, vendorOptionsPresentList);
assertEquals(1, vendorOptionsPresentList.size());
// Find minimum version with no textSymbolizer2 values set
vendorOptionsPresentList.clear();
testObj.getMinimumVersion(null, styleFactory.createTextSymbolizer(), vendorOptionsPresentList);
assertEquals(0, vendorOptionsPresentList.size());
// Get the code coverage values up
testObj.populate(SelectedSymbol.getInstance());
PolygonSymbolizer polygon = null;
testObj.populate(polygon);
testObj.updateSymbol(polygon);
RasterSymbolizer raster = null;
testObj.populate(raster);
testObj.updateSymbol(raster);
testObj.preLoadSymbol();
assertTrue(testObj.isDataPresent());
}
use of org.geotools.styling.OtherTextImpl in project sldeditor by robward-scisys.
the class VOGeoServerTextSymbolizer2 method updateSymbol.
/**
* Update symbol.
*
* @param textSymbolizer the text symbolizer
*/
/*
* (non-Javadoc)
*
* @see com.sldeditor.ui.detail.vendor.geoserver.VendorOptionInterface#updateSymbol(org.geotools.styling.TextSymbolizer)
*/
@Override
public void updateSymbol(TextSymbolizer textSymbolizer) {
GroupConfigInterface fillGroup = getGroup(GroupIdEnum.VO_TEXTSYMBOLIZER_2_FILL);
GroupConfigInterface strokeGroup = getGroup(GroupIdEnum.VO_TEXTSYMBOLIZER_2_STROKE);
GroupConfigInterface group = null;
if (textSymbolizer instanceof TextSymbolizer2) {
TextSymbolizer2 textSymbol2 = (TextSymbolizer2) textSymbolizer;
Expression featureDescription = fieldConfigVisitor.getExpression(FieldIdEnum.VO_TEXTSYMBOLIZER_2_FEATURE_DESCRIPTION);
if (!featureDescription.toString().isEmpty()) {
textSymbol2.setFeatureDescription(featureDescription);
}
Expression snippet = fieldConfigVisitor.getExpression(FieldIdEnum.VO_TEXTSYMBOLIZER_2_SNIPPET);
if (!snippet.toString().isEmpty()) {
textSymbol2.setSnippet(snippet);
}
// Extract OtherText
OtherText otherText = null;
group = getGroup(GroupIdEnum.VO_TEXTSYMBOLIZER_2_OTHERTEXT);
if (group != null) {
if (group.isPanelEnabled()) {
String target = fieldConfigVisitor.getText(FieldIdEnum.VO_TEXTSYMBOLIZER_2_OTHERTEXT_TARGET);
Expression text = fieldConfigVisitor.getExpression(FieldIdEnum.VO_TEXTSYMBOLIZER_2_OTHERTEXT_TEXT);
if (!target.isEmpty() && !text.toString().isEmpty()) {
otherText = new OtherTextImpl();
otherText.setTarget(target);
otherText.setText(text);
}
}
}
textSymbol2.setOtherText(otherText);
// Graphic
Graphic graphic = null;
group = getGroup(GroupIdEnum.VO_TEXTSYMBOLIZER_2_GRAPHIC);
if (group.isPanelEnabled()) {
Expression symbolType = fieldConfigVisitor.getExpression(FieldIdEnum.VO_TEXTSYMBOLIZER_2_SYMBOL_TYPE);
boolean hasFill = (fillGroup == null) ? false : fillGroup.isPanelEnabled();
boolean hasStroke = (strokeGroup == null) ? false : strokeGroup.isPanelEnabled();
Expression size = fieldConfigVisitor.getExpression(FieldIdEnum.VO_TEXTSYMBOLIZER_2_SIZE);
Expression rotation = fieldConfigVisitor.getExpression(FieldIdEnum.VO_TEXTSYMBOLIZER_2_ANGLE);
List<GraphicalSymbol> symbols = symbolTypeFactory.getValue(fieldConfigManager, symbolType, hasFill, hasStroke, selectedFillPanelId);
AnchorPoint anchor = null;
Displacement displacement = null;
graphic = getStyleFactory().graphic(symbols, null, size, rotation, anchor, displacement);
if (!symbols.isEmpty()) {
boolean overallOpacity = (symbols.get(0) instanceof ExternalGraphic);
if (overallOpacity) {
Expression opacity = fieldConfigVisitor.getExpression(FieldIdEnum.VO_TEXTSYMBOLIZER_2_OVERALL_OPACITY);
graphic.setOpacity(opacity);
}
}
}
textSymbol2.setGraphic(graphic);
}
}
use of org.geotools.styling.OtherTextImpl in project sldeditor by robward-scisys.
the class RuleRenderVisitor method copy.
/**
* Method exists in DuplicatingStyleVisitor but is marked private.
*
* @param otherText the other text
* @return the other text
*/
private OtherText copy(OtherText otherText) {
if (otherText == null) {
return null;
}
// TODO: add methods to the factory to create OtherText instances
// sf.createOtherText();
OtherTextImpl copy = new OtherTextImpl();
copy.setTarget(otherText.getTarget());
copy.setText(copy(otherText.getText()));
return copy;
}
use of org.geotools.styling.OtherTextImpl in project sldeditor by robward-scisys.
the class VOGeoServerTextSpacingTest method testVOGeoServerTextSpacingTest.
/**
* Test method for
* {@link com.sldeditor.ui.detail.vendor.geoserver.text.VOGeoServerTextSpacingTest#VOGeoServerTextSpacingTest(java.lang.Class, com.sldeditor.filter.v2.function.FunctionNameInterface)}.
*/
@Test
public void testVOGeoServerTextSpacingTest() {
TextSymbolizerDetails panel = new TextSymbolizerDetails();
TextSymbolizer2 textSymbolizer = null;
VOGeoServerTextSpacing testObj = new VOGeoServerTextSpacing(panel.getClass());
testObj.setParentPanel(panel);
testObj.populate(textSymbolizer);
testObj.updateSymbol(textSymbolizer);
StyleFactoryImpl styleFactory = (StyleFactoryImpl) CommonFactoryFinder.getStyleFactory();
textSymbolizer = (TextSymbolizer2) styleFactory.createTextSymbolizer();
FilterFactory ff = CommonFactoryFinder.getFilterFactory();
Literal featureDescription = ff.literal("feature description");
textSymbolizer.setFeatureDescription(featureDescription);
OtherText otherText = new OtherTextImpl();
otherText.setTarget("target");
Literal otherTextExpression = ff.literal("other text");
otherText.setText(otherTextExpression);
textSymbolizer.setOtherText(otherText);
Literal snippet = ff.literal("snippet");
textSymbolizer.setSnippet(snippet);
// Try with marker symbol
Graphic graphic = styleFactory.createDefaultGraphic();
graphic.graphicalSymbols().add(styleFactory.createMark());
textSymbolizer.setGraphic(graphic);
Controller.getInstance().setPopulating(true);
testObj.populate(textSymbolizer);
Controller.getInstance().setPopulating(false);
testObj.updateSymbol(textSymbolizer);
// Try with external graphic
graphic = styleFactory.createDefaultGraphic();
try {
graphic.graphicalSymbols().add(styleFactory.createExternalGraphic(new File("test.png").toURI().toURL(), "png"));
} catch (MalformedURLException e) {
e.printStackTrace();
}
textSymbolizer.setGraphic(graphic);
textSymbolizer.getOptions().put("wordSpacing", String.valueOf(42));
textSymbolizer.getOptions().put("charSpacing", String.valueOf(21));
Controller.getInstance().setPopulating(true);
testObj.populate(textSymbolizer);
Controller.getInstance().setPopulating(false);
testObj.updateSymbol(textSymbolizer);
// Find minimum version with textSymbolizer2 values set
List<VendorOptionPresent> vendorOptionsPresentList = new ArrayList<VendorOptionPresent>();
testObj.getMinimumVersion(null, textSymbolizer, vendorOptionsPresentList);
assertEquals(2, vendorOptionsPresentList.size());
// Find minimum version with no textSymbolizer2 values set
vendorOptionsPresentList.clear();
testObj.getMinimumVersion(null, styleFactory.createTextSymbolizer(), vendorOptionsPresentList);
assertEquals(0, vendorOptionsPresentList.size());
// Get the code coverage values up
testObj.populate(SelectedSymbol.getInstance());
PolygonSymbolizer polygon = null;
testObj.populate(polygon);
testObj.updateSymbol(polygon);
FeatureTypeStyle fts = null;
testObj.populate(fts);
testObj.updateSymbol(fts);
RasterSymbolizer raster = null;
testObj.populate(raster);
testObj.updateSymbol(raster);
testObj.preLoadSymbol();
assertTrue(testObj.isDataPresent());
}
Aggregations