pWord - The ULTIMATE name in password apps.

.NET 2.0 Required.

Introduction - New User

pWord is designed for both the novice user, and the professionals. pWord can be used to store information such as phone numbers, customer information, scheduling, bills, websites, usernames and passwords.

In addition to regular client sessions, pWord is great for remote sessions. When the autohide feature [ ] is sideways, it tells the software to automatically hide. When you are performing work, it is not useful to have an application take over your work space. So the autohide feature works with the right side of the screen. When you move your mouse away from pWord momentarily, it will automatically hide pWord. Only when you move your mouse back to the far right side of the screen will pWord reappear.


Link - using links effectively.

Using links correctly requires two steps.

    1. The first step is to create a meaningful name.

    2. The second step is to create a correctly formed hyperlink.

The Right Mouse Button - how to use the right mouse button

The right mouse button is the heart of pWord. Without the right mouse button and the context menu, the functionality of pWord would be reduced to near zero. By right clicking the selected node in the treeview, allows you to perform several operations on the treeview. This gives you leverage over the functionality and capabilities inherent in pWord.

The Left Mouse Button - How to use the Left Mouse button

The left mouse button is used primarily for drag and drop functionality. It can also be used to double click a viable link to a website or ftp site.

The left mouse button's drag and drop operation is activated when you select a node with the left mouse button and hold the left mouse button down. Then you drag your mouse pointer to the control or text field that allows for drag and drop. Many web sites allow for username values and password values to accept drag and drop operations. I know that sourceforge will accept drag and drop operations into it's textbox.

The double left mouse button click is also important if you wish to quickly access a node whose value contains a viable link. By simply pointing to the node, and left double clicking, it will automatically bring up the browser and open the link.

Shortcuts and the Keyboard

Using the short cuts can save you time and energy. Once a node in the treeview is highlight by selecting tab 1 to 3 time will allow you insert the name value pairs into the tree. This is a simple as highlighting the node of interest, and then right clicking that node. You will see several shortcuts to the right of each command. Using a combination of arrow keys to open the node of interest, the shortcuts, the tab [tab] key on the keyboard, can get you quickly to the area of interest.

The [Delete] key allows you to quickly edit largs chunks of data. The node commands allow you to grap large sections of data, and place it somewhere else. One of the most useful commands is the "Cut Node" command which allows you to automatically place a node in memory, then delete the node. Then you simply move the cursor where you are interested in placing the node, and select < ctrl > [p] or [ins] key on the keyboard.

The name value pair commands are the first four commands. The should be used for creating a new node, or changing the contents of a new node. The < ctrl > [a] command allows you to add to the contents of a node. This simple insert a new node into the selected node. The inserrt or < ctrl > [i] command will insert a new node right before the selected node. This is useful when inserting information. The [ Add ] to method can also be used to insert a node to the end by simply selecting the parent node first.

pWord allows for creating web pages. The following paragrphs in the section will explain how to make a simple web page, save the web page, and then view the web page.

A Simple Web Page Example - How to make a Web Page with pWord

Step 1

Make sure you start a new application. Select File and then New. Accept the "Are you sure" dialog box by selecting "OK.

Step 2

On the Master's Node right click the node, and select "Add to"

Step 3

In the Name: field at the top of the form type, "html" and then select the add button.

Step 4

Now right click the html node, and select the "add to" menu item.

Step 5

In the Name: field at the top type in "head" and select the add button. Next in the Name field, type in "body" and select add.

Step 6

Next right click the head item, and type "title" in the name field and then in the value field type in an appropriate title and select the "add" button.

Step 7

Now right click the body node, and select "add to" and in the name field type "p" for paragraph and select the Add button.

Step 8

Right click the p node and select the "add to" menu item. In the name field strong and in the value field type in "Welcome to Web Development!" and select the add button.

Step 9

Now select the File menu item and then select the Export to XML, and save the file as test.html on your desktop.

Step 10

Open the file and view your work.

Alternatively, you could just select the preview command on the toolbar. Once you export to xml or html, the preview command is automatically enabled. It is the second icon from your left on the toolbar and looks like an eye.

The Idea of Reuse - The idea of reuse, and how pWord makes it simple.

Reuse in pWord is as simple as placing common items under a common theme. For instance... all of your websites could go under a title such as "WebSites". If it's financial, the records would go under the name of the owner or facility, the department, the type of payment or receivables etc... By organizing the items under a tree, it gives you control over the data, and allows you to find it easier in a mountain of data.

The Idea of Manupulation

Manipulating nodes requires you to practice with the right click button's "get node" menu item. Get node get the selected node and all sub nodes. This allows you to put the node or insert the node where ever you please in the treeview.

Once you give something a name, if you need that node, and all of it's subnodes, it's possible to transfer that information with pWord. Just right click and select "Get Node" it will get the node and then it will allow you to either place that node into another node, or insert it in front of another node.

Practice makes perfect, so try make a few nodes, then use the get node after right click the node. Then use the put node in or insert node into and see what happens. You can manipulate huge chunks of data quickly and easily, and reorganize the structure of your tree. Once you have a structure you are happy with, you can export the data to xml and save your data to a pwd file.

The Idea of Manupulation

The left right control allows you to create many different treesViews. Depending on the topic, they may or may not relate to another treeView. As you add more and more treeViews, you can find them by select the left and right arrows on the control.

The AutoHide Feature

The Auto Hide feature is a very powerful tool. Using the autohide feature enables you to work on other applications, and transfer data using pWord. This is especially important when using remote sessions. pWord allows for complex manipulation and drag and drop operations to be performed to applications that reside underneath pWord. Since pWord hides automatically, it allows the drag and drop operation or copy and paste operation to proceed while pWord is hiding.

Once you move the mouse to the right side of the screen, the pWord app will reappear. This is correct behavior for this application. If you have other important work to perform that causes conflict, you can minize pWord.

If you minimize pWord while it is in autohide mode, pWord will disappear from teh task bar and hide in the notifcation area. When it does this, you'll have to call pWord from the notifcation area and select show to use it again.

Opening and Saving pWord Files

Opening and Saving files to pWord is as simple as selecting the file menu items and Selecting Save or if you have already saved a file you can open it by selecting Open. Once you have completed that operation, you will need to select a filename, or enter a filename. The suffix of any pWord file should end in .pwd for password. Since pWord is a password and scriptiong utility. Be careful not to confuse the export xml feature with the save feature, as you may lose all your work.

The Password Feature

If you create a name called "password", it will automatically hide it as you place your mouse over it. The reason is because password should not be easiliy seen, therefore anything you name password, even if it's not a password will only appear as a the letters password.

The Export NODE Feature

testing 8

The Export NODE feature is very useful when it comes to having multiple web pages in multiple nodes. It is possible to save several different file types in HTML on several different levels. You decide the structure, the settings, and where to save the files. pWord gives you several tools to quickly create web pages or xml data, format to your specifications, and view the structure. Since the structure of an XML or HTML data is the same a the structure of a treeview, you can quickly label parts of your form so that you can quickly get in and change what you need and then get out.

When you export a node, you can either have an entire xml or html page inserted into the Value field, or you can use the structure of the tree to develop the file for editing.

If you are planning on never changing or updating your html or xml file, it will be better to simply save the entire page in the value field.

However, if you plan on constantly changing the structure of the XML or HTML file you can label each specific section of the treeview, also known as Nodes. This will help you keep track of areas in your document that require constant change management.


You may enjoy using the mouse, however, you can really perform faster html than you ever though possible once you start using the key commands. Since the structure of html is based on nodes in a treeview, you can now manipulate the structure of html the way it was meant to be.

Designing a Web Page - Details about designing a web page using pWord


Using Links and Passwords


Introduction - Developer of pWord

This will be an instruction manual for Developers to help them understand the development process of pWord, the goals, and understand how the code works.


Tip 1 - Developing on the NEW Menu Item's

First open the pWord.cs in [design] mode.

As you can see in the image below, the mainMenu1 item icon at the bottom of the image was selected. Then the user selected the "File" menu item and then clicks on "New". If you double click on "New" it will take you to the Main Menu "New" function. Now you can look at the functionality.

Notice the below code. flag_file is used to determine if a file has been saved. flag_file is used in conjunction with the autosave() function. So if you look in the save or open menu items, you'll notice near the bottom of the try{ } statement that their is a save function. If it made it to the bottom of a try {} statement and the flag_file is true, I save the filename automatically that is located in the string filename.

private void menuItem8_Click(object sender, System.EventArgs e)
    flag_file = false; // notice... I don't want you saving new stuff over your old refined work.

      AYS ays = new AYS();
      // ARE YOU SURE? This operation will delete all of your work unless you have saved.
      // (Yes / No)

      if (ays.DialogResult == DialogResult.OK)

        TreeNode masterNode;
        masterNode = new TreeNode("MASTER");
        TreePics apic = new TreePics("Master",img.GroupUp,img.GroupDown);
        masterNode.Tag = "MASTER";


        userControl11.index = 0; // For some reason it loses track of index?
        userControl11.txtMaster.Text = (string)userControl11.Masters[userControl11.index];
        this.tmpNode = treeView1.Nodes[0];


AYS stands for "Are you sure." If the Dialog box gives a DialogResult==OK then it will continue into the control The first thing you might notice is the userControl1 This is the leftright control. It is not really complicated and it only has three things you need to worry about.

    1. userControl11.index is an int that start from 0 to the last treeNode entered. I'll explain this later.
    2. userControl11.Masters is an ArrayList of the Names of the entire Master treeNodes. I'll have to explain this later too.
    3. userControl11.MasterValue is the ArrayList of the actual treeNode object for that named index. You may need to read this three or four times.

Now add a new Master TreeNode... It's simple trust me.

Ok... first thing look look at the leftright control. It has a left arrow and a right arrow.

So here is how the whole thing works. After you hit new, it basically clears out all the data from the LeftRigth control's three items I told you about earlier. It resets the index to 0, it clears out all data from both array lists. And it clears out the need to autosave. Because you don't want to save a cleared out array list into your old data.

That is it for tip #1... You can see that I used pWord to create this help file, and it was about as easy as writing a Microsoft Word document.

Tip 2 - Developing on the Save MENU Item

First open the pWord.cs in [design] mode.

As with the New menu item from tip 1, the Save menu item's method can be accessed through the User Interface. Since the user will select the "File" menu item and then click on "SAVE" in order to save his informaiton, that's exactly how you access the functionality. If you double click on "SAVE" it will take you to the Main Menu "SAVE" function. Now you can look at the functionality, don't try and memorize the user controls... There are simple too many and naming them is not wise in my humble opinion.

Notice the below code. Nodes[0] is used to collect all information from all treeViews. What this means is that the LeftRight control contains the name of each treeview, and the actual treeview. If you right click on the LeftRight control, you can add as many treeview's as you can imagine. Thus, when a new treeview is added, it's data is saved into the LeftRight node's member variable named MasterValue. So if you see userControl11.MasterValue[i] it is basically looking at the total counts of added named treeview's which are stored in userControl11.Masters. Both MasterValue and Masters are ArrayLists. So if you want to add a new item, you simply call up the ArrayLists add function to add an object. Since everything including treenodes and strings are objects, they get stored in these member variables.

private void menuItem10_Click(object sender, System.EventArgs e)

    // AYS ays = new AYS();
    // ays.label1.Text="Saving may delete your previous work. Are you sure?";
    // ays.ShowDialog();
    // if (ays.DialogResult == DialogResult.OK)
    // {

        // Nodes[0] = userControl11;
        int count = userControl11.Masters.Count;

        for (int i = 0;i < count; i++)
        this.saveFileDialog1.FileName = filename;

      catch(Exception f)
        MessageBox.Show("You had an error while saving. " + f.Message,"SAVE ERROR",System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Warning);

When the Save menu item is selected, it first grabs all the information from each index in Masters and MasterValue and places them both side by side into Nodes. Nodes is used as the collection point of all saved information. Since Nodes is also an ArrayList, the Nodes.Add method is used to collect all the names and all the treeviews. After it does this, then it calls up the ShowDialog box for saving a .pwd file. If it accomplishes this task, then the SavFileDialog1's FileOK method is enacted, and the data is saved to the file selected by the user.

private void saveFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e)

    filename = this.saveFileDialog1.FileName;
    if (filename != null)
      IFormatter formatter = new BinaryFormatter();
      Stream stream = new FileStream(this.saveFileDialog1.FileName,FileMode.Create,FileAccess.Write,FileShare.ReadWrite);
      formatter.Serialize(stream, Nodes);
      this.filename = this.saveFileDialog1.FileName;
    flag_file = true;

In the above code, the Nodes ArrayList is serialized and the data is saved to the selected file name.

That is it for tip #2


Under Construction

Page 1 Page 2 Page 3
Home | Docs. | Screenshots | Download