use of com.cburch.logisim.data.Attribute in project logisim-evolution by reds-heig.
the class SvgReader method createShape.
public static AbstractCanvasObject createShape(Element elt) {
String name = elt.getTagName();
AbstractCanvasObject ret;
if (name.equals("ellipse")) {
ret = createOval(elt);
} else if (name.equals("line")) {
ret = createLine(elt);
} else if (name.equals("path")) {
ret = createPath(elt);
} else if (name.equals("polyline")) {
ret = createPolyline(elt);
} else if (name.equals("polygon")) {
ret = createPolygon(elt);
} else if (name.equals("rect")) {
ret = createRectangle(elt);
} else if (name.equals("text")) {
ret = createText(elt);
} else {
return null;
}
List<Attribute<?>> attrs = ret.getAttributes();
if (attrs.contains(DrawAttr.PAINT_TYPE)) {
String stroke = elt.getAttribute("stroke");
String fill = elt.getAttribute("fill");
if (stroke.equals("") || stroke.equals("none")) {
ret.setValue(DrawAttr.PAINT_TYPE, DrawAttr.PAINT_FILL);
} else if (fill.equals("none")) {
ret.setValue(DrawAttr.PAINT_TYPE, DrawAttr.PAINT_STROKE);
} else {
ret.setValue(DrawAttr.PAINT_TYPE, DrawAttr.PAINT_STROKE_FILL);
}
}
// since changing paintType could change it
attrs = ret.getAttributes();
if (attrs.contains(DrawAttr.STROKE_WIDTH) && elt.hasAttribute("stroke-width")) {
Integer width = Integer.valueOf(elt.getAttribute("stroke-width"));
ret.setValue(DrawAttr.STROKE_WIDTH, width);
}
if (attrs.contains(DrawAttr.STROKE_COLOR)) {
String color = elt.getAttribute("stroke");
String opacity = elt.getAttribute("stroke-opacity");
if (!color.equals("none")) {
ret.setValue(DrawAttr.STROKE_COLOR, getColor(color, opacity));
}
}
if (attrs.contains(DrawAttr.FILL_COLOR)) {
String color = elt.getAttribute("fill");
if (color.equals(""))
color = "#000000";
String opacity = elt.getAttribute("fill-opacity");
if (!color.equals("none")) {
ret.setValue(DrawAttr.FILL_COLOR, getColor(color, opacity));
}
}
return ret;
}
use of com.cburch.logisim.data.Attribute in project logisim-evolution by reds-heig.
the class SelectionAttributes method computeAttributes.
private static LinkedHashMap<Attribute<Object>, Object> computeAttributes(Collection<Component> newSel) {
LinkedHashMap<Attribute<Object>, Object> attrMap;
attrMap = new LinkedHashMap<Attribute<Object>, Object>();
Iterator<Component> sit = newSel.iterator();
if (sit.hasNext()) {
AttributeSet first = sit.next().getAttributeSet();
for (Attribute<?> attr : first.getAttributes()) {
@SuppressWarnings("unchecked") Attribute<Object> attrObj = (Attribute<Object>) attr;
attrMap.put(attrObj, first.getValue(attr));
}
while (sit.hasNext()) {
AttributeSet next = sit.next().getAttributeSet();
Iterator<Attribute<Object>> ait = attrMap.keySet().iterator();
while (ait.hasNext()) {
Attribute<Object> attr = ait.next();
if (next.containsAttribute(attr)) {
Object v = attrMap.get(attr);
if (v != null && !v.equals(next.getValue(attr))) {
attrMap.put(attr, null);
}
} else {
ait.remove();
}
}
}
}
return attrMap;
}
use of com.cburch.logisim.data.Attribute in project logisim-evolution by reds-heig.
the class InstanceFactory method createAttributeSet.
@Override
public AttributeSet createAttributeSet() {
Attribute<?>[] as = attrs;
AttributeSet ret = as == null ? AttributeSets.EMPTY : AttributeSets.fixedSet(as, defaults);
return ret;
}
use of com.cburch.logisim.data.Attribute in project logisim-evolution by reds-heig.
the class CircuitMutatorImpl method set.
public void set(Circuit circuit, Component comp, Attribute<?> attr, Object newValue) {
if (circuit.contains(comp)) {
modified.add(circuit);
@SuppressWarnings("unchecked") Attribute<Object> a = (Attribute<Object>) attr;
AttributeSet attrs = comp.getAttributeSet();
Object oldValue = attrs.getValue(a);
log.add(CircuitChange.set(circuit, comp, attr, oldValue, newValue));
attrs.setValue(a, newValue);
}
}
use of com.cburch.logisim.data.Attribute in project logisim-evolution by reds-heig.
the class CircuitMutatorImpl method setForCircuit.
public void setForCircuit(Circuit circuit, Attribute<?> attr, Object newValue) {
@SuppressWarnings("unchecked") Attribute<Object> a = (Attribute<Object>) attr;
AttributeSet attrs = circuit.getStaticAttributes();
Object oldValue = attrs.getValue(a);
log.add(CircuitChange.setForCircuit(circuit, attr, oldValue, newValue));
attrs.setValue(a, newValue);
if (attr == CircuitAttributes.NAME_ATTR || attr == CircuitAttributes.NAMED_CIRCUIT_BOX) {
circuit.getAppearance().recomputeDefaultAppearance();
}
}
Aggregations