/** @cond doxygenLibsbmlInternal */ void RenderPoint::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { SBase::readAttributes(attributes, expectedAttributes); std::string s; if(attributes.readInto("x",s, getErrorLog(), false, getLine(), getColumn())) { this->mXOffset=RelAbsVector(s); } else { this->mXOffset=RelAbsVector(std::numeric_limits<double>::quiet_NaN(),std::numeric_limits<double>::quiet_NaN()); } if(attributes.readInto("y",s, getErrorLog(), false, getLine(), getColumn())) { this->mYOffset=RelAbsVector(s); } else { this->mYOffset=RelAbsVector(std::numeric_limits<double>::quiet_NaN(),std::numeric_limits<double>::quiet_NaN()); } if(attributes.readInto("z",s, getErrorLog(), false, getLine(), getColumn())) { this->mZOffset=RelAbsVector(s); } else { this->mZOffset=RelAbsVector(0.0,0.0); } }
/** @cond doxygenLibsbmlInternal */ SBase* ReactionGlyph::createObject (XMLInputStream& stream) { const std::string& name = stream.peek().getName(); SBase* object = 0; if (name == "listOfSpeciesReferenceGlyphs") { if (mSpeciesReferenceGlyphs.size() != 0) { getErrorLog()->logPackageError("layout", LayoutRGAllowedElements, getPackageVersion(), getLevel(), getVersion(), "", getLine(), getColumn()); } object = &mSpeciesReferenceGlyphs; } else if(name=="curve") { if (getCurveExplicitlySet() == true) { getErrorLog()->logPackageError("layout", LayoutRGAllowedElements, getPackageVersion(), getLevel(), getVersion(), "", getLine(), getColumn()); } object = &mCurve; mCurveExplicitlySet = true; } else { object=GraphicalObject::createObject(stream); } return object; }
/** @cond doxygenLibsbmlInternal */ SBase* BoundingBox::createObject (XMLInputStream& stream) { const std::string& name = stream.peek().getName(); SBase* object = 0; if (name == "dimensions") { if (getDimensionsExplicitlySet() == true) { getErrorLog()->logPackageError("layout", LayoutBBoxAllowedElements, getPackageVersion(), getLevel(), getVersion(), "", getLine(), getColumn()); } object = &mDimensions; mDimensionsExplicitlySet = true; } else if ( name == "position" ) { if (getPositionExplicitlySet() == true) { getErrorLog()->logPackageError("layout", LayoutBBoxAllowedElements, getPackageVersion(), getLevel(), getVersion(), "", getLine(), getColumn()); } object = &mPosition; mPositionExplicitlySet = true; } return object; }
/** @cond doxygenLibsbmlInternal */ void RenderCurve::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { GraphicalPrimitive1D::readAttributes(attributes, expectedAttributes); std::string s; attributes.readInto("startHead", this->mStartHead, getErrorLog(), false, getLine(), getColumn()); attributes.readInto("endHead", this->mEndHead, getErrorLog(), false, getLine(), getColumn()); }
/** @cond doxygenLibsbmlInternal */ void ColorDefinition::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { SBase::readAttributes(attributes,expectedAttributes); std::string valueString; attributes.readInto("id", mId, getErrorLog(), false, getLine(), getColumn()); attributes.readInto("value", valueString, getErrorLog(), false, getLine(), getColumn()); this->setColorValue(valueString); }
/** @cond doxygenLibsbmlInternal */ void Style::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { SBase::readAttributes(attributes, expectedAttributes); attributes.readInto("id", mId, getErrorLog(), false, getLine(), getColumn()); attributes.readInto("name", mName, getErrorLog(), false, getLine(), getColumn()); readListOfRoles(attributes); readListOfTypes(attributes); }
/** @cond doxygenLibsbmlInternal */ SBase* CompSBasePlugin::createObject(XMLInputStream& stream) { SBase* object = 0; const std::string& name = stream.peek().getName(); const XMLNamespaces& xmlns = stream.peek().getNamespaces(); const std::string& prefix = stream.peek().getPrefix(); const std::string& targetPrefix = (xmlns.hasURI(mURI)) ? xmlns.getPrefix(mURI) : mPrefix; if (prefix == targetPrefix) { if ( name == "listOfReplacedElements" ) { if (mListOfReplacedElements != NULL) { getErrorLog()->logPackageError("comp", CompOneListOfReplacedElements, getPackageVersion(), getLevel(), getVersion()); } createListOfReplacedElements(); object = mListOfReplacedElements; if (targetPrefix.empty()) { // // (NOTE) // // A top-level element (listOfReplacedElements) of the comp extension is located // in a default namespace, and thus xmlns=".." attribute must be added to // the element. // This is done by invoking SBMLDocument::enableDefaultNS() function with // the two arguments (the URI of this package and true value). // mListOfReplacedElements->getSBMLDocument()->enableDefaultNS(mURI,true); } } if ( name == "replacedBy" ) { if (mReplacedBy != NULL) { if (mSBML != NULL && getErrorLog() != NULL) { getErrorLog()->logPackageError("comp", CompOneReplacedByElement, getPackageVersion(), getLevel(), getVersion()); } } delete mReplacedBy; COMP_CREATE_NS(compns, getSBMLNamespaces()); mReplacedBy = new ReplacedBy(compns); object = mReplacedBy; object->connectToParent(getParentSBMLObject()); delete compns; } } return object; }
void SpatialSpeciesRxnPlugin::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { SBasePlugin::readAttributes(attributes, expectedAttributes); mIsSetSpatial = attributes.readInto("isSpatial", mIsSpatial, getErrorLog(), mParent != NULL && mParent->getTypeCode() == SBML_SPECIES, getLine(), getColumn()); mIsSetLocal = attributes.readInto("isLocal", mIsLocal, getErrorLog(), mParent != NULL && mParent->getTypeCode() == SBML_REACTION, getLine(), getColumn()); }
/* * Helper to log a common type of error. */ void SBasePlugin::logEmptyString(const std::string &attribute, const unsigned int sbmlLevel, const unsigned int sbmlVersion, const unsigned int pkgVersion, const std::string& element) { if (&attribute == NULL || &element == NULL) return; std::ostringstream msg; msg << "Attribute '" << attribute << "' on an " << element << " of package \"" << mSBMLExt->getName() << "\" version " << pkgVersion << " must not be an empty string."; // // (TODO) Additional class such as SBMLExtensionError and SBMLExtensionErrorLog // may need to be implemented // SBMLErrorLog* errlog = getErrorLog(); if (errlog) { errlog->logError(NotSchemaConformant, sbmlLevel, sbmlVersion, msg.str()); } }
/* * Helper to log a common type of error. */ void SBasePlugin::logUnknownAttribute(const std::string &attribute, const unsigned int sbmlLevel, const unsigned int sbmlVersion, const unsigned int pkgVersion, const std::string& element) { if (&attribute == NULL || &element == NULL) return; std::ostringstream msg; msg << "Attribute '" << attribute << "' is not part of the " << "definition of an SBML Level " << sbmlLevel << " Version " << sbmlVersion << " Package \"" << mSBMLExt->getName() << "\" Version " << pkgVersion << " on " << element << " element."; // // (TODO) Additional class such as SBMLExtensionError and SBMLExtensionErrorLog // may need to be implemented // SBMLErrorLog* errlog = getErrorLog(); if (errlog) { errlog->logError(NotSchemaConformant, sbmlLevel, sbmlVersion, msg.str()); } }
/* * Helper to log a common type of error. */ void SBasePlugin::logUnknownElement(const std::string &element, const unsigned int sbmlLevel, const unsigned int sbmlVersion, const unsigned int pkgVersion ) { if(&element == NULL) return; std::ostringstream msg; msg << "Element '" << element << "' is not part of the definition of " << "SBML Level " << sbmlLevel << " Version " << sbmlVersion << " Package \"" << mSBMLExt->getName() << "\" Version " << pkgVersion << "."; // // (TODO) Additional class such as SBMLExtensionError and SBMLExtensionErrorLog // may need to be implemented // SBMLErrorLog* errlog = getErrorLog(); if (errlog) { errlog->logError(UnrecognizedElement, sbmlLevel, sbmlVersion, msg.str()); } }
/** @cond doxygenLibsbmlInternal */ SBase* ListOfLineSegments::createObject (XMLInputStream& stream) { const std::string& name = stream.peek().getName(); SBase* object = 0; if (name == "curveSegment") { std::string type = "LineSegment"; XMLTriple triple("type","http://www.w3.org/2001/XMLSchema-instance","xsi"); if (!stream.peek().getAttributes().readInto(triple, type)) { //std::cout << "[DEBUG] ListOfLineSegments::createObject () : // Failed to read xsi:type" << std::endl; getErrorLog()->logPackageError("layout", LayoutXsiTypeAllowedLocations, getPackageVersion(), getLevel(), getVersion(), "", getLine(), getColumn()); return object; } //std::cout << "[DEBUG] ListOfLineSegments::createObject () : type " // << type << std::endl; LAYOUT_CREATE_NS(layoutns,this->getSBMLNamespaces()); if(type=="LineSegment") { object = new LineSegment(layoutns); } else if(type=="CubicBezier") { object = new CubicBezier(layoutns); } else { getErrorLog()->logPackageError("layout", LayoutXsiTypeSyntax, getPackageVersion(), getLevel(), getVersion(), "", getLine(), getColumn()); } delete layoutns; } if(object) appendAndOwn(object); return object; }
/** @cond doxygenLibsbmlInternal */ void Style::readListOfTypes(const XMLAttributes& attr) { std::string s; attr.readInto("typeList",s, getErrorLog(), false, getLine(), getColumn()); // seperate the individual elements in the list // they are seperated by whitespaces if(!s.empty()) { readIntoSet(s,this->mTypeList); } }
GLuint CompileShader(ShaderGLType type, const GLchar* source, std::set<int>* errorLines = NULL) { GLint status; unsigned int prog = 0; switch (type) { case GLSL_VS: { prog = glCreateShader(GL_VERTEX_SHADER); glShaderSource(prog, 1, &source, 0); glCompileShader(prog); glGetShaderiv(prog, GL_COMPILE_STATUS, &status); if (status == GL_FALSE) { getErrorLog(prog, errorLines); std::cerr << "Compile error in vertex shader." << std::endl; glDeleteShader(prog); prog = 0; } return prog; }break; case GLSL_FS: { prog = glCreateShader(GL_FRAGMENT_SHADER); glShaderSource(prog, 1, &source, 0); glCompileShader(prog); glGetShaderiv(prog, GL_COMPILE_STATUS, &status); if (status == GL_FALSE) { getErrorLog(prog, errorLines); std::cerr << "Compile error in fragment shader." << std::endl; glDeleteShader(prog); prog = 0; } return prog; }break; } return 0; }
/** @cond doxygenLibsbmlInternal */ void Transformation2D::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { SBase::readAttributes(attributes, expectedAttributes); std::string s; attributes.readInto("transform", s, getErrorLog(), false, getLine(), getColumn()); if(!s.empty()) { this->parseTransformation(s); } else { this->updateMatrix2D(); } }
/** @cond doxygenLibsbmlInternal */ SBase* CubicBezier::createObject (XMLInputStream& stream) { const std::string& name = stream.peek().getName(); SBase* object = 0; if (name == "basePoint1") { if (getBasePt1ExplicitlySet() == true) { getErrorLog()->logPackageError("layout", LayoutCBezAllowedElements, getPackageVersion(), getLevel(), getVersion(), "", getLine(), getColumn()); } object = &mBasePoint1; mBasePt1ExplicitlySet = true; } else if(name == "basePoint2") { if (getBasePt2ExplicitlySet() == true) { getErrorLog()->logPackageError("layout", LayoutCBezAllowedElements, getPackageVersion(), getLevel(), getVersion(), "", getLine(), getColumn()); } object = &mBasePoint2; mBasePt2ExplicitlySet = true; } else { object = LineSegment::createObject(stream); } return object; }
void SpeciesGlyph::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { GraphicalObject::readAttributes(attributes,expectedAttributes); const unsigned int sbmlLevel = getLevel (); const unsigned int sbmlVersion = getVersion(); bool assigned = attributes.readInto("species", mSpecies, getErrorLog(), false, getLine(), getColumn()); if (assigned && mSpecies.empty()) { logEmptyString(mSpecies, sbmlLevel, sbmlVersion, "<" + getElementName() + ">"); } if (!SyntaxChecker::isValidInternalSId(mSpecies)) logError(InvalidIdSyntax); }
/** @cond doxygenLibsbmlInternal */ void Curve::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { const unsigned int sbmlLevel = getLevel (); const unsigned int sbmlVersion = getVersion(); unsigned int numErrs; SBase::readAttributes(attributes, expectedAttributes); // look to see whether an unknown attribute error was logged if (getErrorLog() != NULL) { numErrs = getErrorLog()->getNumErrors(); for (int n = (int)numErrs-1; n >= 0; n--) { if (getErrorLog()->getError((unsigned int)n)->getErrorId() == UnknownPackageAttribute) { const std::string details = getErrorLog()->getError((unsigned int)n)->getMessage(); getErrorLog()->remove(UnknownPackageAttribute); getErrorLog()->logPackageError("layout", LayoutCurveAllowedAttributes, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } else if (getErrorLog()->getError((unsigned int)n)->getErrorId() == UnknownCoreAttribute) { const std::string details = getErrorLog()->getError((unsigned int)n)->getMessage(); getErrorLog()->remove(UnknownCoreAttribute); getErrorLog()->logPackageError("layout", LayoutCurveAllowedCoreAttributes, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } } } }
void TextGlyph::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { GraphicalObject::readAttributes(attributes,expectedAttributes); const unsigned int sbmlLevel = getLevel (); const unsigned int sbmlVersion = getVersion(); bool assigned = attributes.readInto("graphicalObject", mGraphicalObject, getErrorLog(), false, getLine(), getColumn()); if (assigned && mGraphicalObject.empty()) { logEmptyString(mGraphicalObject, sbmlLevel, sbmlVersion, "<" + getElementName() + ">"); } if (!SyntaxChecker::isValidInternalSId(mGraphicalObject)) logError(InvalidIdSyntax); assigned = attributes.readInto("originOfText", mOriginOfText, getErrorLog(), false, getLine(), getColumn()); if (assigned && mOriginOfText.empty()) { logEmptyString(mOriginOfText, sbmlLevel, sbmlVersion, "<" + getElementName() + ">"); } if (!SyntaxChecker::isValidInternalSId(mOriginOfText)) logError(InvalidIdSyntax); attributes.readInto("text", mText, getErrorLog(), false, getLine(), getColumn()); }
bool GLProgram::link() { bool success = true; this->id = glCreateProgram(); if (id > 0) { GLuint vertexShaderId = *((GLuint *) this->vertexShader->getValue()); GLuint fragmentShaderId = *((GLuint *) this->fragmentShader->getValue()); std::cout << "Linking vertex shader id " << vertexShaderId << " and fragment shader id " << fragmentShaderId << " into program id " << this->id << "." << std::endl; glAttachShader(this->id, vertexShaderId); if (this->geometryShader) { GLuint geometryShaderId = *((GLuint *) this->geometryShader->getValue()); std::cout << "Also linking geometry shader id " << geometryShaderId << std::endl; glAttachShader(this->id, geometryShaderId); } glAttachShader(this->id, fragmentShaderId); glLinkProgram(this->id); int linkSuccess = 0; glGetProgramiv(this->id, GL_LINK_STATUS, &linkSuccess); if (linkSuccess == 0) { success = false; char *errorLog = getErrorLog(); std::cerr << "Program link failed: " << std::endl; std::cerr << errorLog << std::endl; free(errorLog); } else { std::cout << "Link succeeded!" << std::endl; } } return success; }
/** @cond doxygenLibsbmlInternal */ void RenderCubicBezier::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { RenderPoint::readAttributes(attributes, expectedAttributes); std::string s; if(attributes.readInto("basePoint1_x",s, getErrorLog(), false, getLine(), getColumn())) { this->mBasePoint1_X=RelAbsVector(s); } else { this->mBasePoint1_X=RelAbsVector(std::numeric_limits<double>::quiet_NaN(),std::numeric_limits<double>::quiet_NaN()); } if(attributes.readInto("basePoint1_y",s, getErrorLog(), false, getLine(), getColumn())) { this->mBasePoint1_Y=RelAbsVector(s); } else { this->mBasePoint1_Y=RelAbsVector(std::numeric_limits<double>::quiet_NaN(),std::numeric_limits<double>::quiet_NaN()); } if(attributes.readInto("basePoint1_z",s, getErrorLog(), false, getLine(), getColumn())) { this->mBasePoint1_Z=RelAbsVector(s); } else { this->mBasePoint1_Z=RelAbsVector(0.0,0.0); } if(attributes.readInto("basePoint2_x",s, getErrorLog(), false, getLine(), getColumn())) { this->mBasePoint2_X=RelAbsVector(s); } else { this->mBasePoint2_X=RelAbsVector(std::numeric_limits<double>::quiet_NaN(),std::numeric_limits<double>::quiet_NaN()); } if(attributes.readInto("basePoint2_y",s, getErrorLog(), false, getLine(), getColumn())) { this->mBasePoint2_Y=RelAbsVector(s); } else { this->mBasePoint2_Y=RelAbsVector(std::numeric_limits<double>::quiet_NaN(),std::numeric_limits<double>::quiet_NaN()); } if(attributes.readInto("basePoint2_z",s, getErrorLog(), false, getLine(), getColumn())) { this->mBasePoint2_Z=RelAbsVector(s); } else { this->mBasePoint2_Z=RelAbsVector(0.0,0.0); } }
/** @cond doxygenLibsbmlInternal */ SBase* Curve::createObject (XMLInputStream& stream) { const std::string& name = stream.peek().getName(); SBase* object = 0; if (name == "listOfCurveSegments") { if (mCurveSegments.size() != 0) { getErrorLog()->logPackageError("layout", LayoutCurveAllowedElements, getPackageVersion(), getLevel(), getVersion(), "", getLine(), getColumn()); } object = &mCurveSegments; } return object; }
void CompSBasePlugin::logInvalidId(const std::string& attribute, const std::string& wrongattribute) { if (&attribute == NULL || &wrongattribute == NULL) return; bool knownelement = (getParentSBMLObject() == NULL); std::ostringstream msg; msg << "Setting the attribute '" << attribute << "' "; if (knownelement) { msg << "of a <" << getParentSBMLObject()->getElementName() << "> "; } msg << "in the " << getPackageName() << " package (version " << getPackageVersion() << ") to '" << wrongattribute << "' is illegal: the string is not a well-formed SId."; SBMLErrorLog* errlog = getErrorLog(); if (errlog) { errlog->logError(NotSchemaConformant, getLevel(), getVersion(), msg.str()); } }
/** @cond doxygenLibsbmlInternal */ void SpeciesGlyph::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { const unsigned int sbmlLevel = getLevel (); const unsigned int sbmlVersion = getVersion(); unsigned int numErrs; /* look to see whether an unknown attribute error was logged * during the read of the listOfSpeciesGlyphs - which will have * happened immediately prior to this read */ bool loSubGlyphs = false; if (getParentSBMLObject() != NULL && getParentSBMLObject()->getElementName() == "listOfSubGlyphs") { loSubGlyphs = true; } if (getErrorLog() != NULL && static_cast<ListOfSpeciesGlyphs*>(getParentSBMLObject())->size() < 2) { numErrs = getErrorLog()->getNumErrors(); for (int n = (int)numErrs-1; n >= 0; n--) { if (getErrorLog()->getError((unsigned int)n)->getErrorId() == UnknownPackageAttribute) { const std::string details = getErrorLog()->getError((unsigned int)n)->getMessage(); getErrorLog()->remove(UnknownPackageAttribute); if (loSubGlyphs == true) { getErrorLog()->logPackageError("layout", LayoutLOSubGlyphAllowedAttribs, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } else { getErrorLog()->logPackageError("layout", LayoutLOSpeciesGlyphAllowedAttributes, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } } else if (getErrorLog()->getError((unsigned int)n)->getErrorId() == UnknownCoreAttribute) { const std::string details = getErrorLog()->getError((unsigned int)n)->getMessage(); getErrorLog()->remove(UnknownCoreAttribute); if (loSubGlyphs == true) { getErrorLog()->logPackageError("layout", LayoutLOSubGlyphAllowedAttribs, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } else { getErrorLog()->logPackageError("layout", LayoutLOSpeciesGlyphAllowedAttributes, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } } } } GraphicalObject::readAttributes(attributes, expectedAttributes); // look to see whether an unknown attribute error was logged if (getErrorLog() != NULL) { numErrs = getErrorLog()->getNumErrors(); for (int n = (int)numErrs-1; n >= 0; n--) { if (getErrorLog()->getError((unsigned int)n)->getErrorId() == UnknownPackageAttribute) { const std::string details = getErrorLog()->getError((unsigned int)n)->getMessage(); getErrorLog()->remove(UnknownPackageAttribute); getErrorLog()->logPackageError("layout", LayoutSGAllowedAttributes, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } else if (getErrorLog()->getError((unsigned int)n)->getErrorId() == UnknownCoreAttribute) { const std::string details = getErrorLog()->getError((unsigned int)n)->getMessage(); getErrorLog()->remove(UnknownCoreAttribute); getErrorLog()->logPackageError("layout", LayoutSGAllowedCoreAttributes, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } } } bool assigned = false; // // species SIdRef ( use = "optional" ) // assigned = attributes.readInto("species", mSpecies); if (assigned == true && getErrorLog() != NULL) { // check string is not empty and correct syntax if (mSpecies.empty() == true) { logEmptyString(mSpecies, getLevel(), getVersion(), "<SpeciesGlyph>"); } else if (SyntaxChecker::isValidSBMLSId(mSpecies) == false) { getErrorLog()->logPackageError("layout", LayoutSGSpeciesSyntax, getPackageVersion(), sbmlLevel, sbmlVersion, "The species on the <" + getElementName() + "> is '" + mSpecies + "', which does not conform to the syntax.", getLine(), getColumn()); } } }
unsigned int SedDocument::getNumErrors (unsigned int severity) const { return getErrorLog()->getNumFailsWithSeverity(severity); }
/** @cond doxygenLibsbmlInternal */ void ReferenceGlyph::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { const unsigned int sbmlLevel = getLevel (); const unsigned int sbmlVersion = getVersion(); unsigned int numErrs; /* look to see whether an unknown attribute error was logged * during the read of the listOfReferenceGlyphs - which will have * happened immediately prior to this read */ bool loSubGlyphs = false; if (getParentSBMLObject() != NULL && getParentSBMLObject()->getElementName() == "listOfSubGlyphs") { loSubGlyphs = true; } if (getErrorLog() != NULL && static_cast<ListOfReferenceGlyphs*>(getParentSBMLObject())->size() < 2) { numErrs = getErrorLog()->getNumErrors(); for (int n = (int)numErrs-1; n >= 0; n--) { if (getErrorLog()->getError((unsigned int)n)->getErrorId() == UnknownPackageAttribute) { const std::string details = getErrorLog()->getError((unsigned int)n)->getMessage(); getErrorLog()->remove(UnknownPackageAttribute); if (loSubGlyphs == true) { getErrorLog()->logPackageError("layout", LayoutLOSubGlyphAllowedAttribs, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } else { getErrorLog()->logPackageError("layout", LayoutLOReferenceGlyphAllowedAttribs, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } } else if (getErrorLog()->getError((unsigned int)n)->getErrorId() == UnknownCoreAttribute) { const std::string details = getErrorLog()->getError((unsigned int)n)->getMessage(); getErrorLog()->remove(UnknownCoreAttribute); if (loSubGlyphs == true) { getErrorLog()->logPackageError("layout", LayoutLOSubGlyphAllowedAttribs, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } else { getErrorLog()->logPackageError("layout", LayoutLOReferenceGlyphAllowedAttribs, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } } } } GraphicalObject::readAttributes(attributes, expectedAttributes); // look to see whether an unknown attribute error was logged if (getErrorLog() != NULL) { numErrs = getErrorLog()->getNumErrors(); for (int n = (int)numErrs-1; n >= 0; n--) { if (getErrorLog()->getError((unsigned int)n)->getErrorId() == UnknownPackageAttribute) { const std::string details = getErrorLog()->getError((unsigned int)n)->getMessage(); getErrorLog()->remove(UnknownPackageAttribute); getErrorLog()->logPackageError("layout", LayoutREFGAllowedAttributes, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } else if (getErrorLog()->getError((unsigned int)n)->getErrorId() == UnknownCoreAttribute) { const std::string details = getErrorLog()->getError((unsigned int)n)->getMessage(); getErrorLog()->remove(UnknownCoreAttribute); getErrorLog()->logPackageError("layout", LayoutREFGAllowedCoreAttributes, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } } } bool assigned = false; // // glyph SIdRef ( use = "required" ) // assigned = attributes.readInto("glyph", mGlyph); if (getErrorLog() != NULL) { if (assigned == true) { // check string is not empty and correct syntax if (mGlyph.empty() == true) { logEmptyString(mGlyph, getLevel(), getVersion(), "<ReferenceGlyph>"); } else if (SyntaxChecker::isValidSBMLSId(mGlyph) == false) { getErrorLog()->logPackageError("layout", LayoutREFGGlyphSyntax, getPackageVersion(), sbmlLevel, sbmlVersion, "The glyph on the <" + getElementName() + "> is '" + mGlyph + "', which does not conform to the syntax.", getLine(), getColumn()); } } else { std::string message = "Layout attribute 'glyph' is missing."; getErrorLog()->logPackageError("layout", LayoutREFGAllowedAttributes, getPackageVersion(), sbmlLevel, sbmlVersion, message, getLine(), getColumn()); } } // // reference SIdRef ( use = "optional" ) // assigned = attributes.readInto("reference", mReference); if (assigned == true && getErrorLog() != NULL) { // check string is not empty and correct syntax if (mReference.empty() == true) { logEmptyString(mReference, getLevel(), getVersion(), "<ReferenceGlyph>"); } else if (SyntaxChecker::isValidSBMLSId(mReference) == false) { getErrorLog()->logPackageError("layout", LayoutREFGReferenceSyntax, getPackageVersion(), sbmlLevel, sbmlVersion, "The reference on the <" + getElementName() + "> is '" + mReference + "', which does not conform to the syntax.", getLine(), getColumn()); } } // // role string ( use = "optional" ) // std::string role; assigned = attributes.readInto("role", role); if (assigned == true) { // check string is not empty if (role.empty() == true && getErrorLog() != NULL) { logEmptyString(role, getLevel(), getVersion(), "<ReferenceGlyph>"); } this->setRole(role); } }
/** @cond doxygenLibsbmlInternal */ void GeneralGlyph::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { const unsigned int sbmlLevel = getLevel (); const unsigned int sbmlVersion = getVersion(); unsigned int numErrs; /* look to see whether an unknown attribute error was logged * during the read of the listOfAdditionalGraphicalObjects - which will have * happened immediately prior to this read */ bool loSubGlyphs = false; if (getParentSBMLObject() != NULL && getParentSBMLObject()->getElementName() == "listOfSubGlyphs") { loSubGlyphs = true; } if (getErrorLog() != NULL && static_cast<ListOfGraphicalObjects*>(getParentSBMLObject())->size() < 2) { numErrs = getErrorLog()->getNumErrors(); for (int n = numErrs-1; n >= 0; n--) { if (getErrorLog()->getError(n)->getErrorId() == UnknownPackageAttribute) { const std::string details = getErrorLog()->getError(n)->getMessage(); getErrorLog()->remove(UnknownPackageAttribute); if (loSubGlyphs == true) { getErrorLog()->logPackageError("layout", LayoutLOSubGlyphAllowedAttribs, getPackageVersion(), sbmlLevel, sbmlVersion, details); } else { getErrorLog()->logPackageError("layout", LayoutLOAddGOAllowedAttribut, getPackageVersion(), sbmlLevel, sbmlVersion, details); } } else if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute) { const std::string details = getErrorLog()->getError(n)->getMessage(); getErrorLog()->remove(UnknownCoreAttribute); if (loSubGlyphs == true) { getErrorLog()->logPackageError("layout", LayoutLOSubGlyphAllowedAttribs, getPackageVersion(), sbmlLevel, sbmlVersion, details); } else { getErrorLog()->logPackageError("layout", LayoutLOAddGOAllowedAttribut, getPackageVersion(), sbmlLevel, sbmlVersion, details); } } } } GraphicalObject::readAttributes(attributes, expectedAttributes); // look to see whether an unknown attribute error was logged if (getErrorLog() != NULL) { numErrs = getErrorLog()->getNumErrors(); for (int n = numErrs-1; n >= 0; n--) { if (getErrorLog()->getError(n)->getErrorId() == UnknownPackageAttribute) { const std::string details = getErrorLog()->getError(n)->getMessage(); getErrorLog()->remove(UnknownPackageAttribute); getErrorLog()->logPackageError("layout", LayoutGGAllowedAttributes, getPackageVersion(), sbmlLevel, sbmlVersion, details); } else if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute) { const std::string details = getErrorLog()->getError(n)->getMessage(); getErrorLog()->remove(UnknownCoreAttribute); getErrorLog()->logPackageError("layout", LayoutGGAllowedCoreAttributes, getPackageVersion(), sbmlLevel, sbmlVersion, details); } } } bool assigned = false; // // reference SIdRef ( use = "optional" ) // assigned = attributes.readInto("reference", mReference); if (assigned == true) { // check string is not empty and correct syntax if (mReference.empty() == true) { logEmptyString(mReference, getLevel(), getVersion(), "<GeneralGlyph>"); } else if (SyntaxChecker::isValidSBMLSId(mReference) == false) { getErrorLog()->logPackageError("layout", LayoutGGReferenceSyntax, getPackageVersion(), sbmlLevel, sbmlVersion); } } }
/** @cond doxygenLibsbmlInternal */ void BoundingBox::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { const unsigned int sbmlLevel = getLevel (); const unsigned int sbmlVersion = getVersion(); unsigned int numErrs; SBase::readAttributes(attributes, expectedAttributes); // look to see whether an unknown attribute error was logged if (getErrorLog() != NULL) { numErrs = getErrorLog()->getNumErrors(); for (int n = (int)numErrs-1; n >= 0; n--) { if (getErrorLog()->getError((unsigned int)n)->getErrorId() == UnknownPackageAttribute) { const std::string details = getErrorLog()->getError((unsigned int)n)->getMessage(); getErrorLog()->remove(UnknownPackageAttribute); getErrorLog()->logPackageError("layout", LayoutBBoxAllowedAttributes, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } else if (getErrorLog()->getError((unsigned int)n)->getErrorId() == UnknownCoreAttribute) { const std::string details = getErrorLog()->getError((unsigned int)n)->getMessage(); getErrorLog()->remove(UnknownCoreAttribute); getErrorLog()->logPackageError("layout", LayoutBBoxAllowedCoreAttributes, getPackageVersion(), sbmlLevel, sbmlVersion, details, getLine(), getColumn()); } } } bool assigned = false; // // id SId ( use = "optional" ) // assigned = attributes.readInto("id", mId); if (assigned == true && getErrorLog() != NULL) { // check string is not empty and correct syntax if (mId.empty() == true) { logEmptyString(mId, getLevel(), getVersion(), "<BoundingBox>"); } else if (SyntaxChecker::isValidSBMLSId(mId) == false) { getErrorLog()->logPackageError("layout", LayoutSIdSyntax, getPackageVersion(), sbmlLevel, sbmlVersion); } } }
/** @cond doxygenLibsbmlInternal */ void Text::readAttributes (const XMLAttributes& attributes, const ExpectedAttributes& expectedAttributes) { GraphicalPrimitive1D::readAttributes(attributes,expectedAttributes); std::string s; double NaN=std::numeric_limits<double>::quiet_NaN(); attributes.readInto("font-family", this->mFontFamily, getErrorLog(), false, getLine(), getColumn()); Text::FONT_WEIGHT fw=Text::WEIGHT_UNSET; Text::FONT_STYLE fs=Text::STYLE_UNSET; Text::TEXT_ANCHOR ta=Text::ANCHOR_UNSET; Text::TEXT_ANCHOR vta=Text::ANCHOR_UNSET; attributes.readInto("x",s, getErrorLog(), false, getLine(), getColumn()); this->mX=RelAbsVector(s); attributes.readInto("y",s, getErrorLog(), false, getLine(), getColumn()); this->mY=RelAbsVector(s); if(attributes.readInto("z",s, getErrorLog(), false, getLine(), getColumn())) { this->mZ=RelAbsVector(s); } else { this->mZ=RelAbsVector(0.0,0.0); } if(attributes.readInto("font-size", s, getErrorLog(), false, getLine(), getColumn())) { this->mFontSize=RelAbsVector(s); } else { this->mFontSize=RelAbsVector(NaN,NaN); } if(attributes.readInto("font-weight", s, getErrorLog(), false, getLine(), getColumn())) { if(s=="bold") { fw=Text::WEIGHT_BOLD; } else if (s == "normal") { fw = Text::WEIGHT_NORMAL; } } if(attributes.readInto("font-style", s, getErrorLog(), false, getLine(), getColumn())) { if(s=="italic") { fs=Text::STYLE_ITALIC; } else if (s == "normal") { fs = Text::STYLE_NORMAL; } } if(attributes.readInto("text-anchor", s, getErrorLog(), false, getLine(), getColumn())) { if(s=="end") { ta=Text::ANCHOR_END; } else if(s=="middle") { ta=Text::ANCHOR_MIDDLE; } else if(s=="start") { ta=Text::ANCHOR_START; } } if(attributes.readInto("vtext-anchor", s, getErrorLog(), false, getLine(), getColumn())) { if(s=="bottom") { vta=Text::ANCHOR_BOTTOM; } else if(s=="middle") { vta=Text::ANCHOR_MIDDLE; } else if(s=="top") { vta=Text::ANCHOR_TOP; } /* else if(s=="baseline") { vta=Text::ANCHOR_BASELINE; } */ } this->setTextAnchor(ta); this->setVTextAnchor(vta); this->setFontWeight(fw); this->setFontStyle(fs); }
bool CMyV8Handler::Execute( const CefString& name, CefRefPtr<CefV8Value> object, const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval, CefString& exception ) { if (name==_T("configInfo")) { retval= CefV8Value::CreateString(CefString(configInfo())); return true; } if (name==_T("clearPassword")) { GetUserDb()->DeleteUserInfo(); return true; } if (name==_T("changeHost")) { if (arguments.size()>0&&arguments[0]->IsString()) { CString strContent; strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); if(strContent.GetLength()>2) strContent=strContent.Mid(1,strContent.GetLength()-2); CString strTemp; if (COssApi::m_strHost!=_T("")) strTemp.Format(_T("\"%s\""),COssApi::m_strHost.c_str()); else strTemp.Format(_T("\"%s\""),GetStaroneControl()->ChangeHost(wstring(strContent)).c_str()); retval= CefV8Value::CreateString(CefString(strTemp)); } return true; } if (name==_T("loadFinish")) { GetStaroneControl()->m_bLoadFinish=TRUE; return true; } if (name==_T("showAuthorizationDlg")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); } CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgshowAuthorizationDlg")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); return true; } if (name==_T("showWnd")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgMain")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("closeWnd")) { CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgcloseWnd")); browser->SendProcessMessage(PID_RENDERER,msg); return true; } if (name==_T("setClipboardData")) { if (arguments.size()>0&&arguments[0]->IsString()) { CString strContent; strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); if(strContent.GetLength()>2) strContent=strContent.Mid(1,strContent.GetLength()-2); if(OpenClipboard(NULL)) { HGLOBAL clipbuffer; char *buffer; EmptyClipboard(); clipbuffer=GlobalAlloc(GMEM_DDESHARE,strContent.GetLength()*2+2); buffer=(char *)GlobalLock(clipbuffer); memset(buffer,0,strContent.GetLength()*2+2); memcpy(buffer,strContent.GetBuffer(0),strContent.GetLength()*2); GlobalUnlock(clipbuffer); SetClipboardData(CF_UNICODETEXT,clipbuffer); CloseClipboard(); } } return true; } if (name==_T("showLaunchpad")) { GetStaroenHummerDlg()->ShowLauchpad(); return true; } if (name==_T("getAccessID")) { CString strTemp; strTemp.Format(_T("\"%s\""),GetStaroneControl()->m_UserInfo.strAccessID); retval= CefV8Value::CreateString(CefString(strTemp)); return true; } if (name==_T("getSignature")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CString strTemp; strTemp.Format(_T("\"%s\""),GetSignature(strContent)); retval= CefV8Value::CreateString(CefString(strTemp)); } return true; } if (name==_T("getRamSignature")) { CString strCmd; CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strCmd.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); } if(arguments.size()>1&&arguments[1]->IsString()) { strContent.Format(_T("%s"),arguments[1]->GetStringValue().c_str()); } CString strTemp; strTemp.Format(_T("\"%s\""),getRamSignature(strCmd,strContent)); retval= CefV8Value::CreateString(CefString(strTemp)); return true; } if (name==_T("addFile")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgaddFile")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("saveFile")) { if (arguments.size()>=1&&arguments[0]->IsString()) { CString strContent; strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgsaveFile")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("saveFileDlg")) { if (arguments.size()==1) { CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>0) func=arguments[0]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=_T(""); hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgsaveFileDlg")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("selectFileDlg")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgselectFileDlg")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("getUpload")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); } retval = CefV8Value::CreateString(CefString(getUpload(strContent))); return true; } if (name==_T("getDownload")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); } retval = CefV8Value::CreateString(CefString(getDownload(strContent))); return true; } if (name==_T("startUpload")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; CHandlerTask *pTask=new CHandlerTask; pTask->Init(CefV8Context::GetCurrentContext(),object,func,strContent,_T("startUpload")); GetStaroneControl()->m_ThreadPool.AddTask(pTask); } return true; } if (name==_T("startDownload")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; CHandlerTask *pTask=new CHandlerTask; pTask->Init(CefV8Context::GetCurrentContext(),object,func,strContent,_T("startDownload")); GetStaroneControl()->m_ThreadPool.AddTask(pTask); } return true; } if (name==_T("stopUpload")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; CHandlerTask *pTask=new CHandlerTask; pTask->Init(CefV8Context::GetCurrentContext(),object,func,strContent,_T("stopUpload")); GetStaroneControl()->m_ThreadPool.AddTask(pTask); } return true; } if (name==_T("stopDownload")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; CHandlerTask *pTask=new CHandlerTask; pTask->Init(CefV8Context::GetCurrentContext(),object,func,strContent,_T("stopDownload")); GetStaroneControl()->m_ThreadPool.AddTask(pTask); } return true; } if (name==_T("deleteUpload")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; CHandlerTask *pTask=new CHandlerTask; pTask->Init(CefV8Context::GetCurrentContext(),object,func,strContent,_T("deleteUpload")); GetStaroneControl()->m_ThreadPool.AddTask(pTask); } return true; } if (name==_T("deleteDownload")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; CHandlerTask *pTask=new CHandlerTask; pTask->Init(CefV8Context::GetCurrentContext(),object,func,strContent,_T("deleteDownload")); GetStaroneControl()->m_ThreadPool.AddTask(pTask); } return true; } if (name==_T("setMetaObject")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; CHandlerTask *pTask=new CHandlerTask; pTask->Init(CefV8Context::GetCurrentContext(),object,func,strContent,_T("setMetaObject")); GetStaroneControl()->m_ThreadPool.AddTask(pTask); } return true; } if (name==_T("getClipboardData")) { retval = CefV8Value::CreateString(CefString(getClipboardData())); return true; } if (name==_T("getDragFiles")) { CString strContent=_T("{\"list\":["); for (int i=0;i<GetStaroneControl()->m_strDragList.size();i++) { if (i!=0) strContent+=_T(","); CString str; str.Format(_T("{\"path\":\"%s\"}"),slnhelper::ReplaceToJson(GetStaroneControl()->m_strDragList[i])); strContent+=str; } strContent+=_T("]}"); retval = CefV8Value::CreateString(CefString(strContent)); return true; } if (name==_T("deleteObject")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgdeleteObject")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("copyObject")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgcopyObject")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("changeUpload")) { CString strContent; CefRefPtr<CefV8Value> func=NULL; if(arguments.size()>0&&arguments[0]->IsString()) strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); if (arguments.size()>1) func=arguments[1]; GetCallbackUploadThread()->SetCallbackStatus(CefV8Context::GetCurrentContext(),object,func,strContent); return true; } if (name==_T("changeDownload")) { CString strContent; CefRefPtr<CefV8Value> func=NULL; if(arguments.size()>0&&arguments[0]->IsString()) strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); if (arguments.size()>1) func=arguments[1]; GetCallbackDownloadThread()->SetCallbackStatus(CefV8Context::GetCurrentContext(),object,func,strContent); return true; } if (name==_T("getErrorLog")) { retval = CefV8Value::CreateString(CefString(getErrorLog())); return true; } if (name==_T("loginByKey")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgloginByKey")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("loginByFile")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgloginByFile")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("setPassword")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgsetPassword")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("loginPassword")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgloginPassword")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("setServerLocation")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgsetServerLocation")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("saveAuthorization")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgsaveAuthorization")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("getDeviceEncoding")) { CString strDevice=CRsa::GetDevice(); wstring hash=L""; if (strDevice!=_T("")) hash=slnhelper::getstringhash(wstring(strDevice)); CString strRet; strRet.Format(_T("\"%s\""),hash.c_str()); retval = CefV8Value::CreateString(CefString(strRet)); return true; } if (name==_T("getUIPath")) { CString strRet=_T(""); if (GetUserDb()->GetUIPath()!=_T("")) strRet.Format(_T("\"%s\""),slnhelper::ReplaceToJson(GetUserDb()->GetUIPath())); else strRet.Format(_T("\"%s\""),slnhelper::ReplaceToJson(GetStaroneControl()->m_strUIPath)); retval= CefV8Value::CreateString(CefString(strRet)); return true; } if (name==_T("openLogFolder")) { ShellExecute(NULL,_T("open"),GetStaroneControl()->m_strUserConfig+_T("\\log"),NULL,NULL, SW_SHOW); return true; } if (name==_T("deleteBucket")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); CefRefPtr<CefV8Value> func=NULL; if (arguments.size()>1) func=arguments[1]; Handler_Msg *hmsg=new Handler_Msg; hmsg->strJson=strContent; hmsg->v8Ctx=CefV8Context::GetCurrentContext(); hmsg->vObject=object; hmsg->vFunc=func; CWebBaseDlg::m_HanderMsg.push_back(hmsg); CefRefPtr<CefBrowser> browser=CefV8Context::GetCurrentContext()->GetBrowser(); CefRefPtr<CefProcessMessage> msg=CefProcessMessage::Create(_T("msgdeleteBucket")); CefRefPtr<CefListValue>msglist=msg->GetArgumentList(); msglist->SetInt(0,(int)hmsg); browser->SendProcessMessage(PID_RENDERER,msg); } return true; } if (name==_T("setTransInfo")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); setTransInfo(strContent); } return true; } if (name==_T("getTransInfo")) { retval = CefV8Value::CreateString(CefString(getTransInfo())); return true; } if (name==_T("getCurrentLocation")) { CString strTemp=_T(""); if (GetStaroneControl()->m_UserInfo.strArea!=_T("")) { strTemp.Format(_T("\"%s\""),GetStaroneControl()->m_UserInfo.strArea); } retval = CefV8Value::CreateString(CefString(strTemp)); return true; } if (name==_T("getCurrentHost")) { CString strTemp=_T(""); if (GetStaroneControl()->m_UserInfo.strHost!=_T("")) { strTemp.Format(_T("\"%s\""),GetStaroneControl()->m_UserInfo.strHost); } retval = CefV8Value::CreateString(CefString(strTemp)); return true; } if (name==_T("stopLoadDownload")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); stopLoadDownload(strContent); } return true; } if (name==_T("openUrl")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); openUrl(strContent); } return true; } if (name==_T("setCallFunctionInfo")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); setCallFunctionInfo(strContent); } return true; } if (name==_T("getCallFunctionInfo")) { CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); retval = CefV8Value::CreateString(CefString(getCallFunctionInfo(strContent))); } return true; } if (name==_T("gGetLanguage")) { retval = CefV8Value::CreateString(CefString(gGetLanguage())); return true; } if (name==_T("gChangeLanguage")) { CString strContent=_T(""); if(arguments.size()>0&&arguments[0]->IsString()) strContent.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); gChangeLanguage(strContent); return true; } if (name==_T("gAccountAction")) { CString strCmd; CString strContent; if(arguments.size()>0&&arguments[0]->IsString()) { strCmd.Format(_T("%s"),arguments[0]->GetStringValue().c_str()); } if(arguments.size()>1&&arguments[1]->IsString()) { strContent.Format(_T("%s"),arguments[1]->GetStringValue().c_str()); } retval = CefV8Value::CreateString(CefString(gAccountAction(strCmd,strContent))); return true; } return false; }