gbFreeNotes
gbFreeNotes is an easy to use database application which uses PowerBASIC statements and API
to implement all database operations. gbFreeNotes demonstrates that implementing basic database
capabilities need not depend on the use of commercial database engines, such as SQL.
Other key features include mutliple views of the data (ListView by name and TreeView by category), freestyle
content editing, light encryption and multiple sort options.
Another key feature of gbFreeNotes is that the database consists entirely of
text content, which allows a user to open and edit the database using text editing
applications of their choice.
Feature List
gbFreeNotes provides basic operations for viewing and modifying Notes. It also provides features
which act on the Note content (event reports, send email, ... etc.).
OverView:
- All-text database content
- No external database engine (PowerBASIC statements/API only)
- Multiple note viewing formats (TreeView, ListView, popup Viewing dialogs)
- Standard file options (New/Open/Save/SaveAs)
- Standard note editing features: New/Add/Delete
- Freestyle multi-line note editor
- Encryption
- Search, including Boolean AND/OR and Whole Word options
- Support for events (birthdays, appointments, ..., etc.)
- Send email via default client
- Open URL in default browser client
- File and search term history
- One-click backup
- Font selection
- Select multiple notes (Copy/Print/Delete)
- Single instance limitation to protect database override
- Online EXE update
- Online Help
Using gbFreeNotes
Notes are displayed in two ways - by name (ListView control) and by category (TreeView
control). By default, all notes are displayed in both controls. Following a search,
both controls contain only those notes containing the search terms.
When a session closes, the current list of displayed notes is saved for display in
the next session.
The TreeView and ListView selections are synchronized, i.e., they contain the same
notes and the same note is selected in each control.
Freestyle editing of notes is allowed in the note Editor (textbox). The first
line in the Editor is always the note name (for display in the ListView). The second
line is always the note category (for display in the TreeView).
All other note content (lines of text) may be entered in any way the user chooses.
When changes are made in the note Editor (Textbox) to the name or category, the
changes show up immediately in the ListView and TreeView controls.
In addition to viewing note content in the note Editor, read-only popup dialogs
are also available to view notes. Any number of popup dialogs may be displayed at one time.
Searches are always made against the entire database, regardless of which notes
are currently displayed in the ListView/TreeView lists. When a search has completed,
only notes matching the search requirements are displayed in the ListView
and TreeView controls.
At any time, the display can be refreshed to show all notes in the database.
Only one instance of gbFreeNotes is allowed. If you attempt to open a 2nd instance,
the existing instance will become active.
Here's a summary of the primary features available in gbFreeNotes ...
File Actions
Open, New, Save As, Save, Backup, Encryption, File Save/Open History
Note Actions
Edit, New, Delete, View
Search Options
Boolean AND/OR search, Search Term History
Multi-Note Actions
Delete, Copy, Print
Internet Actions
Send Email via user default email client
GUI Elements
ListView (note list, search result list)
TreeView (category view)
Toolbar (actions/settings)
TextBox (built-in note Editor)
Popup Note Dialogs (view-only of individual notes)
Main Screen Search (boolean search of notes)
FIND Dialog (boolean searches of notes)
Database Format
Note content is stored as text. There are 5 fields stored in the database, one
field per line of text, except for the blog field, which is a multi-line field
consisting of lines of text separated by a $CRLF.
The number of allowed characters in each field is given to the
right of the field name in the following table:
Name (100)
Category (35)
Date Last Modified (20)
Display Status (1)
Blog (5000)
The benefit of an all-text format is that the user can, if the need arises,
view/edit the database content in other client software.
Note Editing
The built-in note Editor (textbox) is used to edit notes. When a note
is selected in the ListView or TreeView controls, the full note content
is displayed in the note Editor.
The user may change the content in any way they chose, with two constraints:
- The first line must contain only the note name
- The second line must contain
only the category.
All other content is at the user's discretion.
Viewing Notes
In addition to viewing content in the note Editor (textbox) popup note viewing dialogs
are available, via the toolbar View button, for viewing notes in read-only mode.
Any number of popup View dialogs can be displayed. This is useful when wanting to compare
note information, where the notes are far apart in the displays lists.
Use the toolbar View button to open a viewing dialog for the currently selected
note. Pressing Enter while in the ListView or TreeView control will also open
the current note in a viewing dialog, as will double-clicking on a note
Sorting
Database notes may be sorted by name by clicking on the ListView column header. Each
header click alternates the sort between ascending and descending sorts. A
sort direction arrow is provided in the ListView header.
The TreeView is always sorted by category, but names within each category
are sorted according to the ListView settings.
Search Options
gbFreeNotes provides two ways to search for notes. As a result of a search, the
TreeView and ListView controls will contain lists of matching notes.
To return to a listing of all notes in the database, just press
the "List All" toolbar button, or use the Ctrl-L shortcut.
Main Screen Search Controls
On the main screen is a combobox control in which search terms may be entered.
Pressing enter while in the combobox control, or pressing the Search button next
to the combobox will initiate a search.
The combobox dropdown list contains the last 5 terms used in searches.
The type of search (Case Sensitive, Whole Word, or Boolean) may be set using
the toolbar Settings button dropdown context menu. See the Settings context menu
discussion below for more details.
The setting "Allow AND/OR Search" allows the user to enter "A and B" or "A or B"
as a search term, which will override the default Boolean settings.
FIND Dialog
The Find dialog may be opened by pressing the toolbar FIND button or the Find menu
item on the TreeView/ListView context menus. F3 and Ctrl-F may also be used to open
the Find dialog.
Following a search, the ListView and TreeView controls will list only those notes
matching the search. To return to a listing of all notes in the database, just press
the "List All" toolbar button, or use the Ctrl-L shortcut.
The FIND dialog opens with the most recent search term displayed. Simply press
the Search button to initiate a search. Pressing ENTER in the searchterm term textbox
will also initiate a search.
By default, searches are case insensitive. Check the case sensitive check box to make Searches
case sensitive.
The search string entered may consist of more than one word. Select the AND/OR/String
FIND dialog settings to determine if the entire string is searched for, or if the individual
words in the string are searched for as AND (all words must be found for a note to match)
or OR (any word must be found for a note to match).
The setting "Allow AND/OR Search" allows the user to enter "A and B" or "A or B"
as a search term, which will override the default Boolean settings.
Encryption
gbFreeNotes allows encryption of the database text file. When the toolbar Encrypt
button is pressed, all future Saves of a database will encrypt the database and
require the entry of a password by the user.
gbFreeNotes accepts any character string for a password. There's no built-in requirement to
provide a "strong" password. It's up to the user to decide the password length, character
makeup, etc.
When encryption is applied to a database, the first byte of the database is set to the
character Chr$(7). The first byte of an un-encrypted database files is set to the character "-".
When an encrypted database is opened, the user will be asked for a password. The password
will be applied to the file, so if the wrong password is entered, the display may contain
unreadable content.
gbFreeNotes provides a simple XOR encryption. If you want better security, I highly suggest
that you replace the EncryptText() function with a function of your own.
Events
gbFreeNotes provides support for one or more Events (birthdays, holidays, ...) per note.
Additionally, a summary report is available which shows the events on the current day, as
well as +/- five days to either side of the current date.
To create an event, insert a line with information formatted as follows, where the
text "Event:" designated the beginning of an event. The items in the line must be
separated by exactly one space.
Event: Bday 09-12-1951
Events are entered as string pairs, where the first string gives the event name and the
second string gives the event date. Only the month/day (09-12 in the example above) is
used to generate the Event Report (image above). The Julian date of the event (using
the extracted month/day plus the current year) is used to compare against today's date.
Event Name strings may not include spaces. Date strings must be of the MM-DD-YYYY character format,
as shown in the example above. gbFreeNotes will accept any event string, but the Event Report
will work on with the format just described.
Toolbar
The following features are available from the gbFreeNotes toolbar.
- File
Opens an existing database. The user will first be prompted to save any un-saved changes
in the current database.
The dropdown arrow presents a context menu with additional file options.
- New
Adds a new note to the database (placed at the end of the note list)
- Delete
Deletes all checked notes
- View
Views the currently selected note using a popup View dialog
- View All
Displays all notes in the ListView control
- Find
Opens a FIND dialog in which the user enters a search term. After a search,
all matching notes are displayed in the ListView and TreeView controls.
See the section below for more information on searches.
- Copy
Print the selected content from the note editor (all content if no selection)
- Print
Print the selected content from the note editor (all content if no selection)
- Email
Open default email client, with email addressed to the first mail address found in the
note Editor.
- Actions
Closes all viewing dialogs.
The dropdown arrow presents a context menu with additional actions.
- Events
Displays the Event Report. All database notes are used in the report, not just those
notes lists in the ListView.
- Encrypt
Enables encryption when database files are saved
- Settings
Places gbFreeNotes on top of all other open applications.
The dropdown arrow presents a context menu with additional settings.
- Help
Opens this online Help file. Additionally, the dropdown arrow associated with the
Help button provides the following dropdown menu option:
Toolbar Context Menus
The SaveAs and Settings toolbar buttons provide dropdown menus, as follows:
Toolbar File Button
- New
Creates a new, empty database.
- Save
Saves the current database.
- SaveAs
Prompts the user to enter a new file name in which to save the current database.
- Backup
A copy of the current database (user is not prompted to save changes) is saved to the
"temp" subfolder and given a new name. The new name is the database file name appended with the
string ".bak". Saving the database to folders other than "temp" is not supported.
- File History
A list of the last 5 opened or closed files is provided, allowing the user to easily
re-open recent files.
Toolbar Actions Button
When pressed, the toolbar Actions button closes all open Viewing dialogs.
Its dropown arrow provides the following context menu selections:
- Select Font
Opens the FONT selection dialog
- Display Event Report
Displays a dialog listing events +/- 5 days from today
- Close View Dialogs
Closes all open viewing dialogs
- Clear File History
Removes all files, except the current file, from the file history list
- Clear Search Term History
Removes all search terms from the search term history list
Toolbar Settings Button
When pressed, the toolbar Settings button puts the gbFreeNotes window on top
of all other application windows.
Its dropown arrow provides the following context menu selections:
Toolbar Help Button
When pressed, the toolbar Help button opens the online Help page.
Its dropown arrow provides the following context menu selections:
- Online Update
Checks the gbFreeNotes server to see if a new version of the EXE
is available for download.
ListView/TreeView Context Menus
The TreeView and ListView controls also provide context menus.
The TreeView context menu items are:
- Expand All Categories
Expands all category nodes in the TreeView
- Collapse All Categories
Collapses all category nodes in the TreeView
- Collapse All Other Categories
- Copy
Copy the selected content from the note editor (all content if no selection)
- Print
Print the selected content from the note editor (all content if no selection)
The ListView context menu items are:
- Check All
Check all notes currently in the ListView control
- UnCheck All
UnCheck all notes currently in the ListView control
- Copy
Copy the selected content from the note editor (all content if no selection)
- Print
Print the selected content from the note editor (all content if no selection)
TextBox Context Menus
There are 3 textboxes in use by gbFreeNotes. The note Editor, the search combobox
edit box, and the Find dialog textbox. Each has a context menu, with the first four
items in this image common to all textbox context menus:
- Copy
Copy selected text to the clipboard
- Cut
Cut the selected text from the textbox, and place on the clipboard
- Paste
Paste clipboard text at the caret in the textbox
- Delete
Delete the selected text from the textbox
Additionally, the note Editor has these two additional context
menu items.
- Open Selection as URL
Treats the selected text as a URL, sending it to the user's default browser.
- Send Selection as Email
Treats the selected text as an email address, sending it to the user's default email client.
Keyboard Shortcuts
The following key combinations are available to the user to access gbFreeNotes features:
- F1 - Help
- F3 - Find dialog
- Ctrl-D - Delete selected note
- Delete - Delete selected note
- Ctrl-F - Find dialog
- Ctrl-L - Show all database notes in ListView control
- Ctrl-M - Display popup dialog with full note information
- Ctrl-N - Add a new note (shows an Add popup dialog)
- Ctrl-P - Print selected content from note Editor (all content if no selection)
- Ctrl-T - Run test code
- Ctrl-Y - Toggle debug print statements
Other Comments
Miscellaneous information is provided in this section.
Sessions
When gbFreeNotes starts, it restores the previous session content.
INI File
gbFreeNotes application settings are saved in an INI file, kept in the same folder as the gbFreeNotes application.
Misc Comments
Here are a few other comments regarding the operation of gbFreeNotes.
Checks are not saved between sessions.
There is no undo.
SORT/FIND/View All actions result in the FileChanged flag being set, requiring the user
to confirm saving the database when a session is closed.
Actions causing setting of the FileChanged flag also include, deleting a note, building a fake database,
adding a note, editing a note, attaching a file, or removing an attachment.
The FileChanged note is reset when the database is saved, saved to file, an existing database is
reopened or a new database is created.
Comments and suggestions are welcome!
|