# Presentation: 313533

## Database Design with VisualDCT

*Nicholas Di Monte*

## What is VDCT?

- VDCT is Visual Database Configuration Tool
- Beta version released summer of 2002, funded by SLS
- Developed by *Cosylab Ltd.*
- Replacement for text editor, DCT, JDCT, GDCT or Capfast
- VDCT developed to provide missing features in Capfast(?) and GDCT.
- Supports hierarchical design
- Written in Java
- Therefore supported in various systems
- Java Runtime Environment 2
- Importing existing DB and DBD files

## What is VDCT?

- VDCT features
- GUI features
*Clipboard, undo, redo, object inspector, visual linking*
*Data flow arrows, not process flow*
- Supports hierarchal design
*Based on the pvname separator*
*Grouping “grp1:grp2:test1AO”*
*VDCT templates can be used.*
- Separate VDB file as a template with ports and macros defined.

## What is VDCT?

- VDCT features
- Powerful DB parser
*Supports existing DB’s*
*Preserves DB comments, record/field order*
- # normal comments
- #! VDCT layout comments
*DB’s can be edited manually*
- Single file which contains both DB and display data
*GDCT created two separate files*

## What is VDCT?

- VDCT features
- Rapid database development
- Simple mouse-clicks
- Visualization of record instances
*Easier to understand*
- Yet no field description as with DCT, JDCT & GDCT
*Detect errors faster*
- e.g. broken links shown with a cross
- Database can be split into logical blocks (grouping)
*e.g. hierarchical design*
- Printing ?

## Using VisualDCT

## Using VisualDCT

- Launch VisualDCT by executing jar file
- On most machines just type vdct
- This script defines the Class Path and then runs the latest version.
- To start VisualDCT in Windows
- Execute (double click) “VisualDCT2.4.1253.jar”
- Or, use command line options
*VisualDCT2.4.1253.jar [<DBDs>] [<DB>]*

## Using VisualDCT

- Load DBD file(s)
- Recommend selecting _save_ option in “DBD Manager”
- Load DB or VDB file.
- Save work with a VDB extension. (recommended)
- Once a VDB file is created and _saved_, no need to specify DBD files, DBD files will be included at the beginning of a VDB file.
- #! DBDSTART
- #! DBD(“../../dbd/vlinac.dbd”)
- ......
- #! DBD(“other DBD file”)
- #! DBDEND

## Using VisualDCT

***Using VisualDCT***

**Standard window editing tools**

**Displays the active definition database file.**

**Shows the number of  files that have been loaded**

**Indicates the current hierarchal level.**

## Using VisualDCT

***Using VisualDCT***

**Navigator, simplifies moving though the workspace**

**Indicates if the Debugger is running.**
**?**

**Sliding zoom scale.**

**Workspace**

## Using VisualDCT

- Inspector
- Records
- Fields
*Visible*
- Links
- Data flow

## Using VisualDCT

**Field Visibility Values**
**0: NON_DEFAULT_VISIBLE**
- Blank for build 1249
**0: VISIBILITY_SELECT**
- Blank for build 1250
**1: ALWAYS_VISIBLE**
- Eye
**2: NEVER_VISIBLE**
- Eye w/Red X

**Double click to make Invisible**

**Double click to make Invisible**

**Single click to make Visible**

**Default is determined by Settings dialog box**

## Using VisualDCT

- Visibility text in vdb file
**#! Visibility("testAO.DTYP",1)**
**#! Visibility("testAO.OUT",2)**
**#! Visibility("testAO.DOL",2)**
**Visibility Defined:**
**#! Visibility(“fieldname”, visibility)**
**Where visibility:**
**0 – NON_DEFAULT_VISIBLE**
- Build 1249 and earlier.
**0 – VISIBILITY_SELECT**
- Build 1250 and later.
**1 – ALWAYS_VISIBLE**
**2 – NEVER_VISIBLE**

## Using VisualDCT (links)

***Using VisualDCT (links)***

**Link that connects to a pv in grp1.**

**Link with an invisible section between two connectors**

**Link with two connectors used to reposition link.**

**Ext Output**

**Ext Input**

**Port**

**Macro**

**For template**

## Using VisualDCT (links)

- Link/Connector text in vdb file
**#! Field("testAO.OUT",255,1,"testAO.OUT")**
**#! Link("testAO.OUT","testAO/OUT2")**
**#! Connector("testAO/OUT2","testAO/OUT1",660,340,255,"",0)**
**#! Connector("testAO/OUT1","testAO/OUT",620,380,255,"",1)**
**#! Connector("testAO/OUT","test1CC.A",220,480,255,"",0)**

## Using VisualDCT (links)

- Link/Connector text in vdb file
**#! Field(“fieldname", color, rotated, “description")**
**Where rotated: (*****not documented*****)**
**0 – Left side of field box**
**1 – Right side of field box**
**#! Link(“fieldname", “inLinkID")**
**#! Connector(" inLinkID "," outLinkID ", x, y, color, “desc", option)**
**Where option: (*****not documented*****)**
**0 – Visible**
**1 – Invisible**
**2 – External Input**
**3 – External Output**

## Using VisualDCT

- Hierarchy Support
- Based on the pvname separator
- Grouping “grp1:grp2:test1AO”
- This will create three levels
- Grouping must be enabled before loading DB
- Separator must also be defined
- Support templates
- Use Generate... command to flatten vdb with templates
*Macros* pass information into a template
*Ports* pass information upwards out of a template
- Use import command to add template

## Using VisualDCT

***Using VisualDCT***

- Hierarchy
- grp1:grp2:ch0AI, grp1:grp2:ch1AI
- grp1:statBI
- testStatusBI

**Main Group / Top Level**

**grp1**

**grp2**

**grp1:grp2:ch0AI**

**grp1:statBI**

**grp1:grp2:ch1AI**

**testStatusBI**

## Converting files

- Converting from GDCT313 to VisualDCT
- From the File menu, select “Save As VDCT...”
- Minor touch up maybe needed.
- All graphic items _**must**_ be in the defined workspace outlined by the white border in GDCT

## Converting files

- Converting a DB text file to VisualDCT
- In VisualDCT select View menu, then Settings
*Then select Visual Tab*
- Uncheck “Show value of fields when it is not default”
- Load DB file
- Rearrange display for clarity
- Save with a .vdb extension (recommended)
*The Generate command will only create a .db file*

## Converting files

- Tools not to use on VDB files, JDCT & DCT313
- They remove all display formats
- Caution when using “vi” or text editor

## VisualDCT examples

- Virtual LINAC
- Database in original text form
- DB imported to VDCT
- DB modified for appearance, logical flow
*Color links*
*Invisible links*
*Text boxes*