public void GetPngsInDir(DirectoryInfo d) { foreach (FileInfo f in d.GetFiles("*.png")) { var path = f.FullName.Replace(fullpath + "/", ""); string duplicatevalue; if (icons.TryGetValue(f.Name, out duplicatevalue)) { if (SHEET_SPECIFIC != duplicatevalue) { icons.Add(DiaCss.CanonicalizePath(duplicatevalue), duplicatevalue); icons.Add(DiaCss.CanonicalizePath(path), path); icons[f.Name] = SHEET_SPECIFIC; } else { icons.Add(DiaCss.CanonicalizePath(path), path); } } else { icons.Add(f.Name, path); } } }
// For a given Dia object, return the matching CSS class public string GetClassForObjectName(string name) { string cssclass = name; string path = ""; string sheet = ""; switch (name) { case "AADL - Box": cssclass = "daadlprocess"; break; case "AADL - Process": cssclass = "daadlprocess"; break; case "AADL - Thread": cssclass = "daadlthread"; break; case "AADL - Data": cssclass = "daadldata"; break; case "AADL - Processor": cssclass = "daadlprocessor"; break; case "AADL - Memory": cssclass = "daadlmemory"; break; case "AADL - Bus": cssclass = "daadlbus"; break; case "AADL - System": cssclass = "daadlsystem"; break; case "AADL - Subprogram": cssclass = "daadlsubprogram"; break; case "AADL - Thread Group": cssclass = "daadlthreadgroup"; break; case "AADL - Device": cssclass = "daadldevice"; break; case "AADL - Package": cssclass = "daadlpackage"; break; case "chronogram - reference": cssclass = "dchronoref"; break; case "chronogram - line": cssclass = "dchronoline"; break; case "Database - Table": cssclass = "dtable"; break; case "Database - Reference": cssclass = "dreference"; break; case "Database - Compound": cssclass = "dcompound"; break; case "ER - Entity": cssclass = "dc2sheetentity"; break; case "ER - Relationship": cssclass = "drelationship"; break; case "ER - Attribute": cssclass = "dattribute"; break; case "ER - Participation": cssclass = "dparticipation"; break; case "Flowchart - Box": cssclass = "dAssortedsquare"; break; case "Flowchart - Parallelogram": cssclass = "dpgram"; break; case "Flowchart - Diamond": cssclass = "dc2sheetdiamond"; break; case "Flowchart - Ellipse": cssclass = "dcircle"; break; case "FS - Flow": cssclass = "dflow"; break; case "FS - Orthflow": cssclass = "dorthflow"; break; case "FS - Function": cssclass = "dc2sheetfunction"; break; case "GRAFCET - Step": cssclass = "detape"; break; case "GRAFCET - Action": cssclass = "daction"; break; case "GRAFCET - Condition": cssclass = "dc2sheetcondition"; break; case "GRAFCET - Transition": cssclass = "dtransition"; break; case "GRAFCET - Vergent": cssclass = "dvergent"; break; case "GRAFCET - Arc": cssclass = "dvector"; break; case "Istar - goal": cssclass = "dc2sheetgoal"; break; case "Istar - other": cssclass = "dresource"; break; case "Istar - actor": cssclass = "dactor"; break; case "Istar - link": cssclass = "dlink"; break; case "KAOS - other": cssclass = "dc2sheetagent"; break; case "KAOS - goal": cssclass = "dKAOSsoftgoal"; break; case "KAOS - maor": cssclass = "dand-ref"; break; case "KAOS - mbr": cssclass = "dobstructs"; break; case "Jackson - domain": cssclass = "dgiven_domain"; break; case "Jackson - requirement": cssclass = "dc2sheetrequirement"; break; case "Jackson - phenomenon": cssclass = "dshared_phen"; break; case "Misc - Tree": cssclass = "dtree"; break; case "Misc - Analog Clock": cssclass = "danalog_clock"; break; case "Misc - Measure": cssclass = "dc2sheetmeasure"; break; case "Misc - Grid": cssclass = "dgrid_object"; break; case "Network - Bus": cssclass = "dbus"; break; case "Network - WAN Link": cssclass = "dwanlink"; break; case "Network - Base Station": cssclass = "dbasestation"; break; case "Network - Radio Cell": cssclass = "dradiocell"; break; case "Network - Laptop Computer": cssclass = "dlaptop"; break; case "SADT - arrow": cssclass = "darrow"; break; case "SADT - box": cssclass = "dsadtbox"; break; case "SADT - annotation": cssclass = "dannotation"; break; case "UML - Class": cssclass = "dumlclass"; break; case "UML - Note": cssclass = "dc2sheetnote"; break; case "UML - Dependency": cssclass = "dc2sheetdependency"; break; case "UML - Realizes": cssclass = "drealizes"; break; case "UML - Generalization": cssclass = "dgeneralization"; break; case "UML - Association": cssclass = "dassociation"; break; case "UML - Implements": cssclass = "dimplements"; break; case "UML - Constraint": cssclass = "dconstraint"; break; case "UML - SmallPackage": cssclass = "dsmallpackage"; break; case "UML - LargePackage": cssclass = "dlargepackage"; break; case "UML - Actor": cssclass = "dactor"; break; case "UML - Usecase": cssclass = "dcase"; break; case "UML - Lifeline": cssclass = "dlifeline"; break; case "UML - Object": cssclass = "dobject"; break; case "UML - Message": cssclass = "dmessage"; break; case "UML - Component": cssclass = "dc2sheetcomponent"; break; case "UML - Component Feature": cssclass = "dfacet"; break; case "UML - Node": cssclass = "dnode"; break; case "UML - Classicon": cssclass = "dclassicon"; break; case "UML - State Term": cssclass = "dstate_term"; break; case "UML - State": cssclass = "dc2sheetstate"; break; case "UML - Activity": cssclass = "dactivity"; break; case "UML - Branch": cssclass = "dbranch"; break; case "UML - Fork": cssclass = "dfork"; break; case "UML - Transition": cssclass = "dtransition"; break; default: if (objecticons.TryGetValue(name, out cssclass)) { if (icons.icons.TryGetValue(cssclass, out path)) { if (DiaIcons.SHEET_SPECIFIC == path) { if (objectsheets.TryGetValue(name, out sheet)) { // Some shape directories are split into several sheets string shape4sheet = sheet; switch (sheet) { case "ciscocomputer": case "ciscohub": case "ciscomisc": case "cisconetwork": case "ciscotelephony": shape4sheet = "Cisco"; break; case "civil": shape4sheet = "Civil"; break; case "network": shape4sheet = "Network"; break; } cssclass = "d" + shape4sheet + DiaCss.CanonicalizePath(cssclass).Replace(".png", ""); } } else { cssclass = "d" + DiaCss.CanonicalizePath(cssclass).Replace(".png", ""); } } } break; } return(cssclass); }