RSS

(root)/freeplane/freeplane_program/release_branches/1_0_x : 885 : freeplane/src/org/freeplane/features/mindmapmode/addins/export/ExportWithXSLT.java

« back to all changes in this revision

Viewing changes to freeplane/src/org/freeplane/features/mindmapmode/addins/export/ExportWithXSLT.java

dpolivaev at sourceforge
2009-11-14 20:12:21
Revision ID: dpolivaev@users.sourceforge.net-20091114201221-1cwqc0k5tpw8xg3m
315]: Export of user icons

Show diffs side-by-side

added added

removed removed

36
36
 
37
37
import javax.imageio.ImageIO;
38
38
import javax.swing.JOptionPane;
 
39
import javax.swing.ListModel;
39
40
import javax.xml.transform.Result;
40
41
import javax.xml.transform.Source;
41
42
import javax.xml.transform.Transformer;
47
48
import org.freeplane.core.controller.Controller;
48
49
import org.freeplane.core.icon.IconStore;
49
50
import org.freeplane.core.icon.MindIcon;
 
51
import org.freeplane.core.icon.UIIcon;
50
52
import org.freeplane.core.icon.factory.IconStoreFactory;
51
53
import org.freeplane.core.io.MapWriter.Mode;
52
54
import org.freeplane.core.modecontroller.ModeController;
80
82
        private static final long serialVersionUID = 1L;
81
83
 
82
84
        /**
 
85
         * @param map 
83
86
         */
84
 
        private static void copyIconsToDirectory(final String directoryName2) {
85
 
                for (MindIcon icon : STORE.getMindIcons()) {
86
 
                                ResUtil.copyFromURL(icon.getUrl(), directoryName2);
87
 
                }
88
 
                final File iconDir = new File(ResourceController.getResourceController().getFreeplaneUserDirectory(), "icons");
89
 
                if (iconDir.exists()) {
90
 
                        final String[] userIconArray = iconDir.list(new FilenameFilter() {
91
 
                                public boolean accept(final File dir, final String name) {
92
 
                                        return name.matches(".*\\.png");
93
 
                                }
94
 
                        });
95
 
                        for (int i = 0; i < userIconArray.length; ++i) {
96
 
                                final String iconName = userIconArray[i];
97
 
                                if (iconName.length() == 4) {
98
 
                                        continue;
99
 
                                }
100
 
                                ResUtil.copyFromFile(iconDir.getAbsolutePath(), iconName, directoryName2);
101
 
                        }
 
87
        private void copyIconsToDirectory(MapModel map, final String directoryName) {
 
88
                ListModel icons = map.getIconRegistry().getIconsAsListModel();
 
89
                for (int i = 0; i < icons.getSize(); i++) {
 
90
                                UIIcon icon = (UIIcon) icons.getElementAt(i);
 
91
                                String iconName = icon.getName();
 
92
                                StringBuilder sb = new StringBuilder(directoryName);
 
93
                                int lastIndexOfSeparator = iconName.lastIndexOf('/');
 
94
                                if(lastIndexOfSeparator != -1){
 
95
                                        sb.append(File.separatorChar);
 
96
                                        sb.append(iconName.substring(0, lastIndexOfSeparator));
 
97
                                }
 
98
                                File destinationDirectory = new File(sb.toString());
 
99
                                destinationDirectory.mkdirs();
 
100
                                ResUtil.copyFromURL(icon.getUrl(), destinationDirectory);
102
101
                }
103
102
        }
104
103
 
168
167
        private void copyFilesFromResourcesToDirectory(final String directoryName, final String files,
169
168
                                                       final String filePrefix) {
170
169
                final StringTokenizer tokenizer = new StringTokenizer(files, ",");
 
170
                final File destinationDirectory = new File(directoryName);
171
171
                while (tokenizer.hasMoreTokens()) {
172
172
                        final String next = tokenizer.nextToken();
173
 
                        ResUtil.copyFromResource(filePrefix, next, directoryName);
 
173
                        ResUtil.copyFromResource(filePrefix, next, destinationDirectory);
174
174
                }
175
175
        }
176
176
 
177
177
        /**
 
178
         * @param map 
178
179
         */
179
 
        private boolean copyIcons(final String directoryName) {
 
180
        private boolean copyIcons(MapModel map, final String directoryName) {
180
181
                boolean success;
181
182
                final String iconDirectoryName = directoryName + File.separatorChar + "icons";
182
183
                success = ResUtil.createDirectory(iconDirectoryName);
183
184
                if (success) {
184
 
                        ExportWithXSLT.copyIconsToDirectory(iconDirectoryName);
 
185
                        copyIconsToDirectory(map, iconDirectoryName);
185
186
                }
186
187
                return success;
187
188
        }
188
189
 
189
 
        private boolean copyMap(final String pDirectoryName) throws IOException {
 
190
        private boolean copyMap(MapModel map, final String pDirectoryName) throws IOException {
190
191
                final boolean success = true;
191
192
                final BufferedWriter fileout = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(pDirectoryName
192
193
                        + File.separator + "map" + UrlManager.FREEPLANE_FILE_EXTENSION)));
193
 
                final MapModel map = getController().getMap();
194
194
                getModeController().getMapController().getFilteredXml(map, fileout, Mode.FILE);
195
195
                return success;
196
196
        }
263
263
                try {
264
264
                        mTransformResultWithoutError = true;
265
265
                        final boolean create_image = StringUtils.equals(getProperty("create_html_linked_image"), "true");
 
266
                        final MapModel map = getController().getMap();
266
267
                        final String areaCode = getAreaCode(create_image);
267
268
                        final String xsltFileName = getProperty("xslt_file");
268
269
                        boolean success = transformMapWithXslt(xsltFileName, saveFile, areaCode);
280
281
                                        copyFilesFromResourcesToDirectory(directoryName, files, filePrefix);
281
282
                                }
282
283
                                if (success && StringUtils.equals(getProperty("copy_icons"), "true")) {
283
 
                                        success = copyIcons(directoryName);
 
284
                                        success = copyIcons(map, directoryName);
284
285
                                }
285
286
                                if (success && StringUtils.equals(getProperty("copy_map"), "true")) {
286
 
                                        success = copyMap(directoryName);
 
287
                                        success = copyMap(map, directoryName);
287
288
                                }
288
289
                                if (success && create_image) {
289
290
                                        createImageFromMap(directoryName);

Loggerhead 1.17 is a web-based interface for Bazaar branches