-
Notifications
You must be signed in to change notification settings - Fork 2
/
PageDefinitionDetails.java
161 lines (131 loc) · 3.85 KB
/
PageDefinitionDetails.java
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
package io.github.albertus82.jface.preference.page;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import io.github.albertus82.util.ISupplier;
import io.github.albertus82.util.Localized;
public class PageDefinitionDetails {
private String nodeId;
private ISupplier<String> label;
private Class<? extends BasePreferencePage> pageClass;
private ImageDescriptor image;
private IPageDefinition parent;
protected PageDefinitionDetails() {}
private PageDefinitionDetails(final PageDefinitionDetailsBuilder builder) {
this.nodeId = builder.nodeId;
this.label = builder.label;
this.pageClass = builder.pageClass;
this.image = builder.image;
this.parent = builder.parent;
}
public String getNodeId() {
return nodeId;
}
public void setNodeId(final String nodeId) {
this.nodeId = nodeId;
}
public ISupplier<String> getLabel() {
return label;
}
public void setLabel(final ISupplier<String> label) {
this.label = label;
}
public Class<? extends BasePreferencePage> getPageClass() {
return pageClass;
}
public void setPageClass(final Class<? extends BasePreferencePage> pageClass) {
this.pageClass = pageClass;
}
public ImageDescriptor getImage() {
return image;
}
public void setImage(final ImageDescriptor image) {
this.image = image;
}
public IPageDefinition getParent() {
return parent;
}
public void setParent(IPageDefinition parent) {
this.parent = parent;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((nodeId == null) ? 0 : nodeId.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof PageDefinitionDetails)) {
return false;
}
PageDefinitionDetails other = (PageDefinitionDetails) obj;
if (nodeId == null) {
if (other.nodeId != null) {
return false;
}
}
else if (!nodeId.equals(other.nodeId)) {
return false;
}
return true;
}
@Override
public String toString() {
return "PageDefinitionDetails [nodeId=" + nodeId + ", label=" + label + ", pageClass=" + pageClass + ", image=" + image + ", parent=" + parent + "]";
}
public static class PageDefinitionDetailsBuilder {
private String nodeId;
private ISupplier<String> label;
private Class<? extends BasePreferencePage> pageClass;
private ImageDescriptor image;
private IPageDefinition parent;
public PageDefinitionDetailsBuilder nodeId(final String nodeId) {
this.nodeId = nodeId;
return this;
}
public PageDefinitionDetailsBuilder label(final ISupplier<String> label) {
this.label = label;
return this;
}
public PageDefinitionDetailsBuilder label(final String label) {
this.label = new Localized() {
@Override
public String getString() {
return label;
}
};
return this;
}
public PageDefinitionDetailsBuilder pageClass(final Class<? extends BasePreferencePage> pageClass) {
this.pageClass = pageClass;
return this;
}
public PageDefinitionDetailsBuilder image(final ImageDescriptor imageDescriptor) {
this.image = imageDescriptor;
return this;
}
public PageDefinitionDetailsBuilder image(final Image image) {
this.image = ImageDescriptor.createFromImage(image);
return this;
}
public PageDefinitionDetailsBuilder image(final ImageData imageData) {
this.image = ImageDescriptor.createFromImageData(imageData);
return this;
}
public PageDefinitionDetailsBuilder parent(final IPageDefinition parent) {
this.parent = parent;
return this;
}
public PageDefinitionDetails build() {
return new PageDefinitionDetails(this);
}
}
}