Introduce the convept of Feature to a topic.
This commit is contained in:
68
mindplot/src/main/javascript/TopicFeature.js
Normal file
68
mindplot/src/main/javascript/TopicFeature.js
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright [2011] [wisemapping]
|
||||
*
|
||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||
* "powered by wisemapping" text requirement on every single page;
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the license at
|
||||
*
|
||||
* http://www.wisemapping.org/license
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
mindplot.TopicFeature = {
|
||||
Icon: {
|
||||
id:mindplot.model.IconModel.FEATURE_TYPE,
|
||||
model: mindplot.model.IconModel,
|
||||
icon : mindplot.ImageIcon
|
||||
},
|
||||
|
||||
Link: {
|
||||
id: mindplot.model.LinkModel.FEATURE_TYPE,
|
||||
model: mindplot.model.LinkModel,
|
||||
icon : mindplot.LinkIcon
|
||||
},
|
||||
|
||||
Note: {
|
||||
id: mindplot.model.NoteModel.FEATURE_TYPE,
|
||||
model: mindplot.model.NoteModel,
|
||||
icon : mindplot.NoteIcon
|
||||
},
|
||||
|
||||
isSupported : function(id) {
|
||||
return mindplot.TopicFeature._featuresMetadataById.some(function(elem) {
|
||||
return elem.id == id;
|
||||
});
|
||||
},
|
||||
|
||||
createModel : function(id, topic, attributes) {
|
||||
$assert(id, 'type can not be null');
|
||||
$assert(topic, 'topic can not be null');
|
||||
$assert(attributes, 'attributes can not be null');
|
||||
|
||||
var model = mindplot.TopicFeature._featuresMetadataById.filter(function(elem) {
|
||||
return elem.id == id;
|
||||
})[0].model;
|
||||
return new model(topic, attributes);
|
||||
},
|
||||
|
||||
createIcon : function(topic, model) {
|
||||
$assert(topic, 'topic can not be null');
|
||||
$assert(model, 'model can not be null');
|
||||
|
||||
var icon = mindplot.TopicFeature._featuresMetadataById.filter(function(elem) {
|
||||
return elem.id == model.getType();
|
||||
})[0].icon;
|
||||
return new icon(topic, model);
|
||||
}
|
||||
};
|
||||
|
||||
mindplot.TopicFeature._featuresMetadataById = [mindplot.TopicFeature.Icon,mindplot.TopicFeature.Link,mindplot.TopicFeature.Note]
|
||||
|
||||
|
Reference in New Issue
Block a user