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