aboutsummaryrefslogtreecommitdiff
path: root/js/controllers/elements/element-controller.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/controllers/elements/element-controller.js')
-rw-r--r--js/controllers/elements/element-controller.js92
1 files changed, 88 insertions, 4 deletions
diff --git a/js/controllers/elements/element-controller.js b/js/controllers/elements/element-controller.js
index f2b54014..65c24b46 100644
--- a/js/controllers/elements/element-controller.js
+++ b/js/controllers/elements/element-controller.js
@@ -69,27 +69,111 @@ var ElementController = exports.ElementController = Montage.create(NJComponent,
69 // Routines to get/set color properties 69 // Routines to get/set color properties
70 getColor: { 70 getColor: {
71 value: function(el, isFill) { 71 value: function(el, isFill) {
72 var colorObj,
73 color,
74 image;
75
76 // Return cached value if one exists
72 if(isFill) 77 if(isFill)
73 { 78 {
74 return this.application.ninja.stylesController.getElementStyle(el, "background-color"); 79 if(el.elementModel.fill)
80 {
81 return el.elementModel.fill;
82 }
83// return this.application.ninja.stylesController.getElementStyle(el, "background-color");
84 //TODO: Once logic for color and gradient is established, this needs to be revised
85 color = this.getProperty(el, "background-color");
86 image = this.getProperty(el, "background-image");
75 } 87 }
76 else 88 else
77 { 89 {
78 // TODO - Need to figure out which border side user wants 90 // TODO - Need to figure out which border side user wants
79 return this.application.ninja.stylesController.getElementStyle(el, "border-color"); 91 if(el.elementModel.stroke)
92 {
93 return el.elementModel.stroke;
94 }
95 // TODO - Need to figure out which border side user wants
96// return this.application.ninja.stylesController.getElementStyle(el, "border-color");
97 color = this.getProperty(el, "border-color");
98 image = this.getProperty(el, "border-image");
99 }
100
101 if(color || image) {
102 if (image && image !== 'none' && image.indexOf('-webkit') >= 0) {
103 //Gradient
104 colorObj = this.application.ninja.colorController.getColorObjFromCss(image);
105 } else {
106 //Solid
107 colorObj = this.application.ninja.colorController.getColorObjFromCss(color);
108 }
80 } 109 }
110
111 // Update cache
112 if(isFill)
113 {
114 el.elementModel.fill = colorObj;
115 }
116 else
117 {
118 el.elementModel.stroke = colorObj;
119 }
120
121 return colorObj;
81 } 122 }
82 }, 123 },
83 124
84 setColor: { 125 setColor: {
85 value: function(el, color, isFill) { 126 value: function(el, color, isFill) {
127 var mode = color.mode;
86 if(isFill) 128 if(isFill)
87 { 129 {
88 this.application.ninja.stylesController.setElementStyle(el, "background-color", color.color.css); 130 if(mode)
131 {
132 switch (mode) {
133 case 'nocolor':
134 this.setProperty(el, "background-image", "none");
135 this.setProperty(el, "background-color", "none");
136 el.elementModel.fill = null;
137 return;
138 case 'gradient':
139 this.setProperty(el, "background-image", color.color.css);
140 this.setProperty(el, "background-color", "none");
141 break;
142 default:
143 this.setProperty(el, "background-image", "none");
144 this.setProperty(el, "background-color", color.color.css);
145 }
146 }
147 else
148 {
149 this.application.ninja.stylesController.setElementStyle(el, "background-color", color.color.css);
150 }
151 el.elementModel.fill = color;
89 } 152 }
90 else 153 else
91 { 154 {
92 this.application.ninja.stylesController.setElementStyle(el, "border-color", color.color.css); 155 if(mode)
156 {
157 switch (mode) {
158 case 'nocolor':
159 this.setProperty(el, "border-image", "none");
160 this.setProperty(el, "border-color", "none");
161 el.elementModel.stroke = null;
162 return;
163 case 'gradient':
164 this.setProperty(el, "border-image", color.color.css);
165 this.setProperty(el, "border-color", "none");
166 break;
167 default:
168 this.setProperty(el, "border-image", "none");
169 this.setProperty(el, "border-color", color.color.css);
170 }
171 }
172 else
173 {
174 this.application.ninja.stylesController.setElementStyle(el, "border-color", color.color.css);
175 }
176 el.elementModel.stroke = color;
93 } 177 }
94 } 178 }
95 }, 179 },