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;
84
private static void copyIconsToDirectory(final String directoryName2) {
85
for (MindIcon icon : STORE.getMindIcons()) {
86
ResUtil.copyFromURL(icon.getUrl(), directoryName2);
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");
95
for (int i = 0; i < userIconArray.length; ++i) {
96
final String iconName = userIconArray[i];
97
if (iconName.length() == 4) {
100
ResUtil.copyFromFile(iconDir.getAbsolutePath(), iconName, directoryName2);
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));
98
File destinationDirectory = new File(sb.toString());
99
destinationDirectory.mkdirs();
100
ResUtil.copyFromURL(icon.getUrl(), destinationDirectory);
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);
179
private boolean copyIcons(final String directoryName) {
180
private boolean copyIcons(MapModel map, final String directoryName) {
181
182
final String iconDirectoryName = directoryName + File.separatorChar + "icons";
182
183
success = ResUtil.createDirectory(iconDirectoryName);
184
ExportWithXSLT.copyIconsToDirectory(iconDirectoryName);
185
copyIconsToDirectory(map, iconDirectoryName);
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);
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);
282
283
if (success && StringUtils.equals(getProperty("copy_icons"), "true")) {
283
success = copyIcons(directoryName);
284
success = copyIcons(map, directoryName);
285
286
if (success && StringUtils.equals(getProperty("copy_map"), "true")) {
286
success = copyMap(directoryName);
287
success = copyMap(map, directoryName);
288
289
if (success && create_image) {
289
290
createImageFromMap(directoryName);