root / trunk / examples / exaTemplateLayout / src / com / iver / templateLayout / PrintingManager.java @ 9591
History | View | Annotate | Download (2.86 KB)
1 |
package com.iver.templateLayout; |
---|---|
2 |
|
3 |
import com.hardcode.gdbms.engine.values.ValueWriter; |
4 |
import com.iver.andami.PluginServices; |
5 |
import com.iver.cit.gvsig.ProjectExtension; |
6 |
import com.iver.cit.gvsig.fmap.DriverException; |
7 |
import com.iver.cit.gvsig.fmap.core.IFeature; |
8 |
import com.iver.cit.gvsig.fmap.layers.FBitSet; |
9 |
import com.iver.cit.gvsig.fmap.layers.FLayer; |
10 |
import com.iver.cit.gvsig.fmap.layers.FLyrVect; |
11 |
import com.iver.cit.gvsig.fmap.layers.SelectableDataSource; |
12 |
import com.iver.cit.gvsig.fmap.layers.layerOperations.Selectable; |
13 |
import com.iver.cit.gvsig.project.Project; |
14 |
import com.iver.cit.gvsig.project.documents.layout.ProjectMap; |
15 |
import com.iver.cit.gvsig.project.documents.layout.ProjectMapFactory; |
16 |
import com.iver.cit.gvsig.project.documents.layout.fframes.FFrameText; |
17 |
import com.iver.cit.gvsig.project.documents.layout.fframes.FFrameView; |
18 |
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame; |
19 |
import com.iver.cit.gvsig.project.documents.layout.gui.Layout; |
20 |
|
21 |
public class PrintingManager { |
22 |
FLyrVect layer; |
23 |
Layout layout; |
24 |
|
25 |
public PrintingManager(FLayer layerProvin) {
|
26 |
layer = (FLyrVect) layerProvin; |
27 |
ProjectExtension aux = (ProjectExtension) PluginServices.getExtension(ProjectExtension.class); |
28 |
Project theProject = aux.getProject(); |
29 |
layout = ((ProjectMap) theProject.getProjectDocumentByName( |
30 |
"FichaCurso", ProjectMapFactory.registerName)).getModel();
|
31 |
|
32 |
} |
33 |
|
34 |
public void startPrinting() throws DriverException { |
35 |
Selectable select = (Selectable) layer; |
36 |
FBitSet bs = select.getSelection(); |
37 |
SelectableDataSource rs = layer.getRecordset(); |
38 |
|
39 |
for(int i=bs.nextSetBit(0); i>=0; i=bs.nextSetBit(i+1)) { |
40 |
// operate on index i here }
|
41 |
IFeature feat = layer.getSource().getFeature(i); |
42 |
|
43 |
IFFrame[] theFrames = layout.getLayoutContext().getFFrames();
|
44 |
for (int j=0; j < theFrames.length; j++) |
45 |
{ |
46 |
if (theFrames[j].getTag() != null) |
47 |
{ |
48 |
try {
|
49 |
processFrame(theFrames[j], feat, rs ); |
50 |
} catch (com.hardcode.gdbms.engine.data.driver.DriverException e) {
|
51 |
e.printStackTrace(); |
52 |
throw new DriverException(e); |
53 |
} |
54 |
} |
55 |
} |
56 |
layout.getLayoutControl().refresh(); |
57 |
layout.showPrintDialog(null);
|
58 |
} |
59 |
|
60 |
} |
61 |
|
62 |
private void processFrame(IFFrame frame, IFeature feat, SelectableDataSource rs) throws com.hardcode.gdbms.engine.data.driver.DriverException { |
63 |
String tag = frame.getTag();
|
64 |
if (tag.compareTo("VISTA1")==0) |
65 |
{ |
66 |
FFrameView fv = (FFrameView) frame; |
67 |
fv.getMapContext().getViewPort().setExtent(feat.getGeometry().getBounds2D()); |
68 |
} |
69 |
if (frame instanceof FFrameText) |
70 |
{ |
71 |
FFrameText ft = (FFrameText) frame; |
72 |
ft.clearText(); |
73 |
int fieldId = rs.getFieldIndexByName(tag);
|
74 |
ft.addText(feat.getAttribute(fieldId).getStringValue(ValueWriter.internalValueWriter)); |
75 |
} |
76 |
// if (tag.compareTo("1")==0)
|
77 |
// {
|
78 |
// FFrameView fv = (FFrameView) frame;
|
79 |
// fv.getFMap().getViewPort().setExtent(feat.getGeometry().getBounds2D());
|
80 |
// }
|
81 |
|
82 |
} |
83 |
|
84 |
} |