forked from jgraph/mxgraph
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmxImageBundle.java
More file actions
81 lines (73 loc) · 2.05 KB
/
mxImageBundle.java
File metadata and controls
81 lines (73 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/**
* Copyright (c) 2010, Gaudenz Alder
*/
package com.mxgraph.util;
import java.util.Hashtable;
import java.util.Map;
/**
* Maps from keys to base64 encoded images or file locations. All values must
* be URLs or use the format data:image/format followed by a comma and the base64
* encoded image data, eg. "data:image/gif,XYZ", where XYZ is the base64 encoded
* image data.
*
* To add a new image bundle to an existing graph, the following code is used:
*
* <code>
* mxImageBundle bundle = new mxImageBundle();
* bundle.PutImage("myImage", "data:image/gif,R0lGODlhEAAQAMIGAAAAAICAAICAgP" +
* "//AOzp2O3r2////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAHACwAAAAA" +
* "EAAQAAADTXi63AowynnAMDfjPUDlnAAJhmeBFxAEloliKltWmiYCQvfVr6lBPB1ggxN1hi" +
* "laSSASFQpIV5HJBDyHpqK2ejVRm2AAgZCdmCGO9CIBADs=");
* graph.addImageBundle(bundle);
* </code>
*
* The image can then be referenced in any cell style using image=myImage.
* If you are using mxOutline, you should use the same image bundles in the
* graph that renders the outline.
*
* To convert a given BufferedImage to a base64 encoded String, the following
* code can be used:
*
* <code>
* ByteArrayOutputStream bos = new ByteArrayOutputStream();
* ImageIO.write(image, "png", bos);
* System.out.println("base64=" + mxBase64.encodeToString(
* bos.toByteArray(), false));
* </code>
*
* The value is decoded in mxUtils.loadImage. The keys for images are resolved
* and the short format above is converted to a data URI in
* mxGraph.postProcessCellStyle.
*/
public class mxImageBundle
{
/**
* Maps from keys to images.
*/
protected Map<String, String> images = new Hashtable<String, String>();
/**
* Returns the images.
*/
public Map<String, String> getImages()
{
return images;
}
/**
* Adds the specified entry to the map.
*/
public void putImage(String key, String value)
{
images.put(key, value);
}
/**
* Returns the value for the given key.
*/
public String getImage(String key)
{
if (key != null)
{
return images.get(key);
}
return null;
}
}