#include "JDateObj.h" #include "JDateData.h" #include "JString.h" #include "JColorData.h" #include "JStringData.h" #include "JIntegerData.h" #include "JIntegerProperty.h" #include "JIntegerListProperty.h" #include "JLinkObj.h" #include char* theJDateObj = JDateObj().Register(); void JDateObj::writeContent(JOutputStream& os) { JLabelObj::writeContent(os); putInteger(os, "date", (int)date); putInteger(os, "mode", mode); } void JDateObj::readContent(JDictionary& dict) { JLabelObj::readContent(dict); date = JDate(getInteger(dict, "date")); mode = getInteger(dict, "mode"); updateValue(); label = getText(); } const char* JDateObj::className() const { return "JDateObj";} JObject* JDateObj::clone() const { return new JDateObj(*this);} JDateObj::JDateObj() { color = JColor::red; bkgnd = JColor::black; igm = IN_LAST; ogm = OUT_LAST; mode = DATE_MASK; updateValue(); label = getText(); for (int i=0; ivalue); setLabel(label); } else if (prop.getName() == JString("show year")) { changeMode(YEAR_MASK, ((JIntegerListProperty*)&prop)->value); setLabel(label); } else if (prop.getName() == JString("show week")) { changeMode(WEEK_MASK, ((JIntegerListProperty*)&prop)->value); setLabel(label); } else if (prop.getName() == JString("show time")) { changeMode(TIME_MASK, ((JIntegerListProperty*)&prop)->value); setLabel(label); } else if (prop.getName() == JString("show seconds")) { changeMode(SECONDS_MASK, ((JIntegerListProperty*)&prop)->value); setLabel(label); } else if (prop.getName() == JString("year")) { v[YEAR] = ((JIntegerProperty*)&prop)->value; changed = true; } else if (prop.getName() == JString("month")) { v[MONTH] = ((JIntegerListProperty*)&prop)->value; changed = true; } else if (prop.getName() == JString("date")) { v[DATE] = ((JIntegerListProperty*)&prop)->value; changed = true; } else if (prop.getName() == JString("hours")) { v[HOURS] = ((JIntegerListProperty*)&prop)->value; changed = true; } else if (prop.getName() == JString("minutes")) { v[MINUTES] = ((JIntegerListProperty*)&prop)->value; changed = true; } else if (prop.getName() == JString("seconds")) { v[SECONDS] = ((JIntegerListProperty*)&prop)->value; changed = true; } if (changed) setDValue(JDate(v[YEAR], v[MONTH], v[DATE], v[HOURS], v[MINUTES], v[SECONDS])); return true; } void JDateObj::updateValue() { v[DATA] = (int)date; v[SECONDS] = date.getSeconds(); v[MINUTES] = date.getMinutes(); v[HOURS] = date.getHours(); v[DATE] = date.getDate(); v[MONTH] = date.getMonth(); v[YEAR] = date.getYear(); v[WDAY] = date.getWDay(); v[YDAY] = date.getYDay(); v[DST] = date.isDST(); v[WEEK_TAG] = v[WDAY]; v[MONTH_TAG] = v[MONTH]; } boolean JDateObj::setDValue(JDate _date) { if (date != _date) { date = _date; updateValue(); label = getText(); for (int i=0; i