Statistics
| Revision:

gvsig-raster / org.gvsig.raster.tools / trunk / templates / rasterTaskProjectTemplate / alg_with_preview_template / sources / algorithm / ProjectTemplateProcess.java @ 1927

History | View | Annotate | Download (5.27 KB)

1 1843 nbrodin
package org.gvsig.raster.projecttemplate.algorithm;
2
3
import java.util.HashMap;
4
5
import javax.swing.SwingUtilities;
6
7
import org.gvsig.fmap.dal.coverage.RasterLocator;
8
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
9
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
10
import org.gvsig.fmap.dal.coverage.exception.InvalidSetViewException;
11
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
12
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
13
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
14
import org.gvsig.fmap.dal.coverage.store.RasterQuery;
15
import org.gvsig.i18n.Messages;
16 1908 nbrodin
import org.gvsig.raster.algorithm.RasterBaseAlgorithmLibrary;
17
import org.gvsig.raster.algorithm.process.RasterProcess;
18 1843 nbrodin
19
/**
20
 * Process
21
 */
22
public class ProjectTemplateProcess extends RasterProcess {
23
        public static String      RASTER_STORE1     = "RasterStore1";
24
        public static String      BUFFER            = "RasterStore1";
25
        public static String      PATH              = "Path";
26
        public static String      FILENAME          = "FileName";
27
        public static String      TIME              = "Time";
28 1925 nbrodin
        public static String      EXPORT            = "Export";
29 1843 nbrodin
30
        public static String      TEST_EXTENT       = "TestExtent";
31
        public static String      TEST_WIDTH        = "TestWidth";
32
        public static String      TEST_HEIGHT       = "TestHeight";
33
34
        private RasterDataStore   store             = null;
35
        private String            filename          = null;
36
        private long              millis            = 0;
37 1925 nbrodin
        private boolean           export            = true;
38 1843 nbrodin
39
        private Extent            testExtent        = null;
40
        private int               testWidth         = 0;
41
        private int               testHeight        = 0;
42
43
        /**
44
         * This buffer is just to test
45
         */
46
        private Buffer            bufferForTest     = null;
47
48
        public static void registerParameters() {
49
                RASTER_STORE1 = RasterBaseAlgorithmLibrary.registerInputParameter(RASTER_STORE1, RasterDataStore.class);
50
                PATH = RasterBaseAlgorithmLibrary.registerInputParameter(PATH, String.class);
51 1925 nbrodin
                EXPORT = RasterBaseAlgorithmLibrary.registerInputParameter(EXPORT, Boolean.class);
52 1843 nbrodin
                TEST_EXTENT = RasterBaseAlgorithmLibrary.registerInputParameter(TEST_EXTENT, Extent.class);
53
                TEST_WIDTH = RasterBaseAlgorithmLibrary.registerInputParameter(TEST_WIDTH, Integer.class);
54
                TEST_HEIGHT = RasterBaseAlgorithmLibrary.registerInputParameter(TEST_HEIGHT, Integer.class);
55
56
                FILENAME = RasterBaseAlgorithmLibrary.registerOutputParameter(FILENAME, String.class);
57
                TIME = RasterBaseAlgorithmLibrary.registerOutputParameter(TIME, Long.class);
58
        }
59
60
        public void init() {
61
                store = getParam(RASTER_STORE1) != null ? (RasterDataStore)getParam(RASTER_STORE1) : null;
62
                filename = getStringParam(PATH);
63 1925 nbrodin
                export = getBooleanParam(EXPORT);
64 1843 nbrodin
65
                testExtent = getParam(TEST_EXTENT) != null ? (Extent)getParam(TEST_EXTENT) : null;
66
                testWidth = getIntParam(TEST_WIDTH);
67
                testHeight = getIntParam(TEST_HEIGHT);
68
        }
69
70
        public void process() throws ProcessInterruptedException {
71
                long t1 = new java.util.Date().getTime();
72
                insertLineLog(Messages.getText("..."));
73
                try {
74
                        if (store == null)
75
                                throw new ProjectTemplateException("...");
76
77 1925 nbrodin
                        Extent windowExtent = store.getExtent();
78
                        int w = (int)store.getWidth();
79
                        int h = (int)store.getHeight();
80
                        double cellSize = store.getCellSize();
81 1843 nbrodin
82 1925 nbrodin
                        if(testExtent != null) {
83
                                windowExtent = testExtent;
84
                                w = testWidth;
85
                                h = testHeight;
86
                                cellSize = testExtent.width() / w;
87
                        }
88
89 1843 nbrodin
                        RasterQuery query = RasterLocator.getManager().createQuery();
90
                        query.setAllDrawableBands();
91
                        query.setAreaOfInterest(testExtent, testWidth, testHeight);
92
                        Buffer sourceBuffer = null;
93
                        try {
94
                                sourceBuffer = store.query(query);
95
                                sourceBuffer.setDataExtent(testExtent.toRectangle2D());
96
                        } catch (RasterDriverException e) {
97
                                throw new ProjectTemplateException("");
98
                        } catch (InvalidSetViewException e) {
99
                                throw new ProjectTemplateException("");
100
                        }
101
                        bufferForTest = sourceBuffer;
102 1927 nbrodin
103
                        //////////////////////////
104
                        //TODO:PROCESS!!
105
106 1843 nbrodin
                        //int inDataType = store.getDataType()[0];
107
                        //Buffer buf = RasterLocator.getManager().createBuffer(
108
                        //                inDataType,
109
                        //                (int)store.getWidth(),
110
                        //                (int)store.getHeight(),
111
                        //                store.getBandCount(),
112
                        //                true);
113
                        //updatePercent(row, buf.getHeight());
114
                        //////////////////////////
115
116 1925 nbrodin
                        /*if(export) {
117
                                super.exportRaster(filename,
118
                                                buf,
119
                                                cellSize,
120
                                                windowExtent.getULX(),
121
                                                windowExtent.getULY());
122
                        }*/
123 1843 nbrodin
124
                        long t2 = new java.util.Date().getTime();
125
                        millis = t2 - t1;
126
127
                        SwingUtilities.invokeLater(new Runnable() {
128
                                public void run() {
129
                                        if (externalActions != null) {
130
                                                externalActions.end(getResult());
131
                                        }
132
                                }
133
                        });
134
                } catch (ProjectTemplateException e) {
135
                        if (incrementableTask != null)
136
                                incrementableTask.processFinalize();
137
                        messageBoxError("...", this, e);
138
                }
139
        }
140
141
        public Object getResult() {
142
                HashMap<String, Object> map = new HashMap<String, Object>();
143
                map.put(FILENAME, filename);
144
                map.put(TIME, new Long(millis));
145
                map.put(BUFFER, bufferForTest);
146
                return map;
147
        }
148
149
        public int getPercent() {
150
                return percent;
151
        }
152
153
        public String getTitle() {
154
                return Messages.getText("...");
155
        }
156
}