------------------------------------------------------------
Program: JArtifex
Version: 5.20 (18.11.2007)
Author: Thomas Schneider
Documentation: documentation.html
Tool-Doc: tool documentations.html
Short-Reference: short-reference.html
FAQ: faq.txt
Download: Download
------------------------------------------------------------
THIS IS SHAREWARE! PLEASE REGISTER, WRITE AN EMAIL TO JArtifexUSE:
Framework for developing database applications (with websupport) through xml files
(including: swing-gui, complex gui controls, validations, sql, client/server (rmi),
file-io, printing, logging, extendable xml tags, embedding extern models and controllers)
START / EXAMPLES:
1. timesheet.bat : Demo Application 'Timesheet'
2. work.bat : Mini code examples 'Work'
3. sqlutil.bat : sql utility with direct table editing
4. application_generator.bat : creates a java jartifex application from a given database
5. Shell.bat : The configurable 'TslShell' (fileio, ftp, telnet, sockets,...)
6. mini-guidesigner.bat : A poor JArtifex-Designer. It's fine to have a first look, how to create GUIs with JArtifex
7. swingy : shows/change the swing-gui components on runtime.
syntax: java.exe -classpath ./; -jar tsl.jar xmlFile [options] [parameter]
java.exe -classpath ./;tsl.jar tsl.jartifex.JArtifex xmlFile [options] [parameter]
COMMON FEATURES:
- parsing xml-files to build menu,, gui-elements, dialogs
- user defined controls and xml-taags
- simplified gui-layout-managing
- recursive file-including (for buuilding templates)
- controls are linkable (transferrring results on actionevents)
- condition depending result-transsfer
- possibility to use extern modelss
- possibility to use extern controoller-class
- enables user defined method-callling
- enables using of bean-propertiess (invoking getter and setter of attributes)
- enables to add controls on runtiime
- simplified using of RMI
- enables SQL-statements
- provides database-table-surfacess (-->Spread)
- enables embedding into applets
- enables MDI (Multiple Document IInterface) with JInternalFrame
- enables using of full path-namess for controls (e.g. for templates)
- enables creation (dynamically, oonly with JSdk) of java-code on runtime (look at sqlutil.xml, terminal.xml)
- enables multiuser mode actualiziing on soft database triggers (see DatabaseTrigger)
- provides a configurable shell (TTslShell, see example tsl.tools.shell.jshell)
- provides a configurable menu/diaalog (XmlMenu, see example 'menu' in 'shell')
- provides an objectbrowser to debbug given instances
- provides a beanviewer to give GUUIs generic to any data (javabeans)
- provides a poor GUI-Designer forr JArtifex-GUIs.
- provides a swing test applicatioon (Swinger: shows/changes f.e. GridBagLayouts)
GENERATOR:
- generates basic-applications thrrough the database-structure
- generates html documentation thrrough the database-structure
- generates java dataobjects thrrough the database-structure
FRAMEWORK:
- complex spread-functionality (ennhancing JTable, complex database-support)
- complex edit-field with user deffined document-validation
- xml-parser/instancer (instances from interfaces)
- console/tracing/error-handling llibrary
- protocol file creating
- Database library
- Print library
- Thread library
- String library
- Date library
- File I/O library
- mini persistence layer
EXTENDED TOOLS:
- jsed (search and replace of reguular expressions)
- JStarter (starts any java-expresssion from a shell)
- configurable shell TslShell
- ObjectBrowser (usable as Debuggeer/Tester for any java application)
- BeanExaminer (Giving a GUI to anny javabean)
- configurable menu XmlMenu (Menu//Dialogs for a shell/gui or html-servlet)
- TableProcessor (reads xml/csv daata, configures through xml and shows formatted swing panel)
- Workflow/ActivityFlow (simple woorkflow configuration or rule engine)
- Textformat (is able to format siimple text to e.g. html)
- GII: generic bean creation throuugh generic interface implementation
PRECONDITIONS:
- At least: Java 1.5 (with Jsdk JArtifex will provide more features!)
- WebStart 1.2 (already included iin jdsk 1.5)
- JJEdit 4.1 or Eclipse 3.1 would be nice, to edit java and xml files.
PROJECTS / REFRENCE IMPLEMENTATIONS:
- Timesheet: Timesheet, using the most features of the framework
- SqlUtil: Tool to work with Sql sstatements
- BE: Special customer product
FILES:
tsl.jar class-files with main-class tsl.jartifex.JArtifex
_applet applet-utility-class to use by ini-files
_controlchanger control-utility-class to use by ini-files
samples/*.ini sample-ini-files (deprecated!)
samples/*.xml sample-configuration-files
samples/*.inc sample-include-files
templates/*.tml template-files for the application-generator
policy global permission for rmi-connections
doc/index.html main-information-page
doc/documentation.html detailed documentation
doc/short-ref.html feature-reference tables
doc/suite.html applet-sample
samples/data/*.* sample-data-files
timesheet/*.* reference-example
hsqldb/*.* java-database HSQLDB used by the reference-example
src/*.jar sources of all controls
HISTORY:
------------------------------------------------------------
DATE CHANGE
------------------------------------------------------------
18.11.2007 New Version: 5.20
BeanXmlMapper corrections
IBeanEditor+AbstractBeanController+DynamicDialog enhanced
26.08.2007 New Version: 5.19
Refactored: StringUtil --> StringUtilBase (loose copling, XmlStringUtil removed!)
Console.print(text) --> Console.print(type, text)
Enhanced: DynamicProxy: avoidInvokingFor
Enhanced: BeanXmlMapper: forceMapping, filterChildClasses
Enhanced: ClassReflector is able to work with proxies
Corrections: BeanReflector corrections on inheritance (isBeanMethod)
New : DynamicEnhancerProxy
New : FunctionCache
26.03.2007 New Version: 5.18
FileUtil: try/catch: no messages, but throwing runtimeexception
XmlElement, BeanXmlMapper, DynamicBeanProxy:
now handling referenced objects
XmlMenu: activateMenu after any action through stack
JArtifex.Window NEW: picture
JArtifex with common-property splash (splashscreen)
Validator: Mask input correction
DynamicDialog checking duty fields
New: ScrollableFlowLayout
Buttonlayout corrections
BeanEx: checking unique index
18.02.2007 New Version: 5.17
Timesheet: overtime correction,
XmlMenu: TerminalUI extended, Gui extended
build-file changed
XmlElement corrected and extended (BeanXmlMapper included)
new XmlMenu:tools/toolmenu.xml, tools/xmlmenu.xsd
AbstractMenu: attribute 'title' --> 'label'
reads property-values from file
ActionSelection entries corrected
Validator+DefaultEditor: generic mask-definition for date/time/timestamp extended
new dynamicproxy.DynamicProxy
24.09.2006 New Version: 5.16
Timesheet:
pnTimeEmployee: Default setting of projects and types
new view: pnProjectTimetable
in extras menu included: TabPro views
BeanExaminer:
foreignkey with multiple columns, columns for mult. for.keys corrected
Refactored:
data or example files: tools --> samples
14.05.2006 New Version: 5.15
New:
tsl.workflow.ActivityFlow --> workflows and statemachines
tsl.xml.IXmlInstancer --> XmlElement, using DOM
tsl.xml.XmlInterface --> switcher between tsl-xml and dom-xml
tsl.ui.ILogger --> Logbook, SimpleLogger
tsl.tableprocessor.* --> xml-description to view formatted data
tsl.text.TextFormat --> convert simple formatted text to html
Refactored:
StringUtil + XmlStringUtil
MethodThread + ReflectionUtil
Console + TslConsole + GuiUtil
XmlObject --> IXmlObject
Datum --> TslDate
06.09.2005 New Version: 5.14
javax.text.Format used in Validator and DefaultEditor
tsl.ui refactoring
build-script changed --> jartifex holds all sources
beanexaminer extended
jartgen extended
Console messages extended
Resources extended
gui and jartifex classes implement tsl.ui.view
17.04.2005 New Version: 5.13
JArtifex: Desktop extended, control-model extended
DynamicDialog, BeanVisualizer extended
Editor, Action, Validator, DefaultEditor extended
and refactored to tsl.ui
09.04.2005 New Version: 5.12r
JArtifex: Desktop extended
10.03.2005 New Version: 5.12
JArtifex: onSelection-->ItemState.SELECTED inserted
StringUtil refactored: New FileUtil class
ResourceBundle handling extended
Timesheet: History-Dialog, start batch for windows 98
Timesheet: showing weekdays in spreads
TemplateGenerator outsourced to a new Project: JartGen
JText: styling corrected
ShellCommand: corrections, new parameter: analyzeParameter
ProtocolFile extended and refactored to LogBook
New: TreeNode, NetNode
updated HsqlDB 1.7.1 -> 1.7.3
--> renaming columns with reserved db keywords:
begin -> db_begin
end -> db_end
28.12.2004 New Version: 5.11
New: TslTemplateGenerator
ResourceBundle handling included
Default ResourceBundles for english and german created
XmlMenu extended with DynamicSelection, DBMapper, dbeditor.xml
Timesheet corrections
Timesheet: types.free=H:Holiday, I:Illness
Timesheet: user constraints (administrator, editor, guest=viewer)
Timesheet: Database extended: New Table PERSONHISTORY
10.10.2004 New Version: 5.10
NEW: XmlMenu
Refactored: Timedb.Employee --> Timedb.Person
Timesheet: Account-Document, corrections
DocumentValidator: New class Validator
StringUtil: indexOfOutside(..) extended
--> \" will be " (useful for the shell)
30.07.2004 New Version: 5.03
Timesheet: corrections
Database: BIT and BINARY fields changed
Spread: Renderers for BIT and BINARY added
NEW: filemanager
04.07.2004 New Version: 5.02
ApplicationGenerator: edit-algorithm improved
correction: TableVector.findRow()
ColorUtil improved
Timesheet help improved
Timesheet: Employee, Project with datespan
NEW: Swingy (Swing Test Utility)
ObjectWrapper extended
21.06.2004 New Version: 5.01
Timesheet enhanced: Dist.html, employee-selection, month-selection
DocumentValidator: remove corrected
NetScan added
01.05.2004 New Version: 5.00
Database: insertupdate corrected
Timesheet: TimeMonth, PlanMonth extended
Utils: StringUtil, TableVector extended
BasicControl: cmdtype 'cls' accepts now simple java-expression
GuiDesigner added
BeanVisualizer added
tool documentations with screenshots added
08.02.2004 New Version: 4.73
ApplicationGenerator externControllerInterface extended.
ApplicationGenerator: Combo now filled (by selection)
Timesheet extended. Using Generated ConfigurationManager.
controls.Spread.getContent(sub) --> now returning Objects
24.01.2004 New Version: 4.72
TslShell extended (show, select)
30.11.2003 New Version: 4.71
New: ObjectBrowser with JArtifex-GUI
TableVector.getVectorFromMap()
TableVector.getVectorFromArray()
StringUtil.toString(Collection)
Console.load(), Console.save()
TslShell: @references in parameters
MethodThread: @references in parameters
31.10.2003 New Version: 4.70
Generator: generates java dataobjects
Generator: templates refactored!
Timesheet: New project views added
06.09.2003 New Version: 4.61
JArtifex, StringUtil, Generator: inserting Systemvariables
TslShell: New option: print html text
JArtifex: New control 'Scrollpane'
Generator: corrections, Scrollpane embedded
browse.xml: shell and fedit integrated
structure: jartifex.bat renamed to work.bat
sendinfo: new option: -function=production
New: TextPrinter (prints formatted text to printer lpt1
New: Query (reads sql-queries from a file)
New: WebGrabber (gets url contents recursive through it links)
TableVector: is able to print formatted tables to TextPrinter!
TslShell, jshell: corrections
New: DynamicDialog, DynamicItem
20.05.2003 New Version: 4.60
Refactored: BasicShell --> TslShell
TagReader-methods moved to StringUtil:
isInsideBlock(), getEndTagPosition(), indexOfOutside()
StringUtil: corrections: getStringVector()
Database : correction: update(), getTypes(), importDB()
Refactoring: directory 'data' moved into 'samples'
Refactoring: classes _*.java moved into 'samples'
jshell : extended (mail, modem, ff, sql, stack, print, {output})
New : setup.bat, setup.sh (initializing path)
New : doc/faq.html
Timesheet : new db-field: employee.group
MethodThread: extended (getByReflection() )
PrintUtil : correction of printing sorted Tables
09.05.2003 New Version: 4.59
StringUtil extended
MethodThread extended
DocumentValidator now exepts regular expressions (use in Edit)
25.04.2003 New Version: 4.58
StringUtil: corrections of trim(), getFileBytes(), getStringArray()
New: BasicShell providing basics to start a class from the os shell
Implemented: jshell (a dynamic os shell for java)
11.04.2003 New Version: 4.57
Browser: correction on opening files
Combo: key/values devided by '!'
Combo: correction on historizing
tools.jsed: correction
20.02.2003 New Version: 4.56
changed homepage
Spread: new cmdtype DOFORSELECTED
Spread: extended popup-menu
Extended Documentsystem
Timesheet: Property:do a selection after generate
Timesheet: Extended Certificate (with table)
Timesheet: model changed:types.calc, project.pay,project.maxhours,
JStarter with try/catch on compilation
jsed with filespec
Layout: fedit with icons
New gui-element: JText (with Strg+f, Strg+s)
JText with textfinder and textstyler
PrintUtil correction: tablewith
Edit: correction of int-input
Combo: command with key/values devided by ':'
14.02.2003 New Version: 4.55
New: DatabaseTrigger (Database extended in sql())
Timesheet: embedded DatabaseTrigger
04.02.2003 New Version: 4.54
Timesheet: actualization corrected
SqlUtil: History corrected
Dynamic-NewWindows: Destroying window
24.01.2003 New Version: 4.53
classpath extension for javahome + lib/tools.jar
application-generator: db-login parameter
applets: examples timesheet, suite corrected
Database: delete(): =null --> is null
SQLUtil: RowIDCreator embedded
jsed: path-correction
15.01.2003 New Version: 4.52
embedding JStarter in JArtifex (JavaStarter)
correction in ApplicationGenerator (prescision>255, blobs)
Database: new sqlStmt() using jdbc 2.0 methods
10.01.2003 New Version: 4.51
New tool: JStarter (starts java-expressions)
teminal.xml extended
ApplicationGenerator with try/catches on metadata-getting
ApplicationGenerator-source now available!
02.01.2003 New Version: 4.5 (NOT FULL COMPATIBLE TO EARLIER VERSIONS!)
New tools-package: jsed, Search, ApplicationGenerator
Refactoring: some unimportant classes moved to tsl.util
StringUtil: copyToClipboard, getFromClipboard, sr
StringUtil: typeOf extended
Console: commandline: -q
Console: printGeneralInfo: Screenresolution
BasicControl: activate() --> actualize itself
Edit: new property: init (initstring for a mask)
Edit: new property: min (min-number)
Edit: new property: max (max-number)
Edit: new property: errortext
Edit: widthString-correction
Paint: parameter-type-correction
Page: extended (getContent, fillIt --> Panel-Selection)
Combo: columns changed: key, comment
15.12.2002 New Version: 4.11
Timesheet: correction in calculation of workdays
Timesheet: table employee: id, name, comment
BasicControl: focus-workaround for jdk1.4 corrected
12.12.2002 New Version: 4.10a
08.12.2002 New Version: 4.10
New: Document-creation
Panel: name-correction (->print)
Spread: context-menu: Copy Cell/Selection
JArtifex: jartifexinfo
Database: update: '=null' --> 'is null'
26.11.2002 New Version: 4.09
Spread: method setCell(Object column, Object value)
Spread: property 'colupdates'
Spread: cmdtype 'updaterow'
Spread: exportDB(tableName, TableVector data)
Database: correction in exportDB
22.11.2002 New Version: 4.08
Common: Lookandfeel can use fully qualified classpath
Common: new property: noborder
Panel: new property: border
16.11.2002 New Version: 4.07
Timesheet: timedb: keys.key --> keys.id
Timesheet: timedb: holidays: int --> float
Timesheet: timedb: properties.value: varchar --> char(255)
JArtifex, BasicControl: Now using MethodThread
Dialog: new property: init
08.11.2002 New Version: 4.06
Timesheet: PropertyBox: Generate Keys
Timesheet-DB: Now using hsqldb 1.7.1
Timesheet-DB: Properties.value: char(64) ->varchar
Timesheet-DB: Properties.id: char(8) -> int
Timesheet: PropertyBox: ccbFields visible
MethodThread: message on invoke-error enhanced
Timer: initialized with current Systemtime
Edit: Error background-color (lightred) now visible
23.10.2002 New Version: 4.05
BasicControl: interpreting 'cmdtype'
Spread: export to excel-sheet (popup-menu)
Timesheet: New PropertyBox
Timesheet: New Year-Panel
TableVector: getFromFile corrected
DateUtil : New method 'convert'
Panel: showing title in Tabbedpane
Timer.xml: extended
Timer: interpreting 'start', 'stop', 'timer'
21.10.2002 New Version: 4.04
Spread: copyline correction
DocumentValidator: Double-Validation-correction
Timesheet: Weekend in Timetable corrected
Timesheet: actualizing (inclusive getSum)
18.10.2002 New Version: 4.03
Spread: newline correction
Timer: start/stop correction
Timesheet/sqlutil starting database_start.xml
16.10.2002 New Version: 4.02
Spread: newline correction
XMLParser: include-file correction
Timesheet: Color extended
10.10.2002 New Version: 4.01
NEWWINDOWs have now specials titles
Spread: Correction after sorting a table
Spread: Correction for complex en/disabling
Spread: New entry 'save as ascii' in contextmenu
Edit: on fillObject instanceof TableVector --> get(0,0)
DateUtil: new method: getDate(year, month, day)
Timesheet: Extended
07.06.2002 New Version: 4.0 (NOT FULL COMPATIBLE TO EARLIER VERSIONS!)
JArtifex common-block: locale-property
Page: now a real Container (look at samples.xml)
Split: weightx, weighty of the childs controls the devider
Edit: getContent('DBDate')
Button: getContent('Command')
Spread with action on rowSelectionChanging
Spread with Excel-functionality
Spread with variable title,dbtable,colinits
Spread property: colinits (initials for coltype-masks)
Spread property: columns (from command)
Spread cell-editing: edit_row_col
search-dialog in Spread (activate with Strg+F)
filter-dialog in Spread (activate with Strg+Shift+F)
package-structure changed
tabletest.xml, externtest.xml deleted
printutil-correction
printutil: report-printing (childprinting)
beanProperty with complete methodname ('get', 'set' will not be added)
file-including: include file="filepath"
JArtifex, BasicControl serializable
New real Sample: timesheet.xml
Database: metadata for db2, access(odbc), instantdb
newwindow: correction
debugging extended (look at info.xml)
xml-parsing correction (comments and "")
text-control: read from file only if cmdtype="read"! default cmdtype="TXT"
tablevector: toHtml()
Console: error-viewing (new errordialog)
BasicControl: undefined property error-handling
Label: new property 'statusbar'
New JArtifex-Test option: -test -->start actionevents for all controls
Combo: storing keys for items (getContentKey())
New: -serialize=filename -> load JArtifex from serialized file
New: BasicControl-property 'popup'
New: Spread-property 'sumrow'
New: empty content [] calls JArtifex.getActiveControl()
'@' references JArtifex.getActiveControl()
Button->getContent() returns its command
tsl.gui.spread.Spread: SpreadPopup
New commandtype: focus (requests focus)
correction in DocumentValidator (default minNum = Integer.MIN_VALUE)
Timer: new property 'start' (timestamp to start command once)
08.03.2002 New Version: 3.41
parameter with extension allowed (e.g.:browser.xml)
new controls: Window (=JInternalFrame)
new property: hierarchy (add the parent-hierarchy to the name)
is runnable on jdk14
starttsl.bat: starts work.xml
15.02.2002 New Version: 3.40
new property: model (->setModel())
new Tag: direct Swingclass invoking
control Label: title -> command
Program: setExternInterface(Object)
BasicControl: methodinvoking for @control
new control: Paint
new ModelViewMapper
new Shell (with for-command)
27.01.2002 New Version: 3.31
tooltip correction
text to standardoutput correction
samples moved to directory 'Samples'
Control Html extended: getBack(), getForward()
Control RmiButton extended: client
New sample: browser.xml
06.01.2002 New Version: 3.30
New control: ByteArray (example in rmitest.xml)
Program: getInterpretCommand: do nothing on byte[]
BasicControl: execute: TXT: byte[]
BasicControl: execute: READ: read bytes (not chars)
RmiTest: download files (using ByteArray)
New Class: DataObject (simple class holding any data)
27.11.2001 New Version: 3.22
New control: Password (example in mr.xml)
12.11.2001 New Version: 3.21
PrintUtil: tablesize-rounding changed
12.10.2001 New Version: 3.20
NEW: file-including (look at mr.xml)
(intern: BasicControl-parent-child-structure
getParent(), getChilds())
F1: help extended
08.10.2001 New Version: 3.19
MyEdit: focusLost deselectAll()
06.10.2001 New Version: 3.18
New: focuslost/focusgained-events (BasicControl)
New: shortcut (BasicControl)
New: help (BasicControl)
(now the program listens to ALL controls!!!)
New: HtmlPane
New: Control: Html
(intern: some equals -> equalsIgnoreCase)
Own Controls can be set into the package tsl.controls.xxx...
Dialog: New property: inputfocus
Dialog: calculate inputfocus
30.09.2001 New Version: 3.17
Program is of type JFrame
Common: New property: icon
Dialog: DefaultButton works
Spread: It is horizontal Scrollable
Spread: New property: autoresize
Spread: The selection is visible
Edit: New property: nextFocus
Edit: Mask without spaces works
Combo: editable=false works
14.09.2001 New Version: 3.16
Correction: Dialog resizeable
@@ as reference to Program
default-names and titles on controls
control-positioning (down, right)
New: Layout-managing (prop:widthstring, xfill)
Doubleclick-handling (prop: dblclick)
Parameter: nobeep (no beep on error-messages)
Spread: Column-Moving disabled
new print-method (with more parameters)
Dialog: New property: defaultButton
Button: New property: verifyinputfocus (cancelbutton)
09.09.2001 Spread: scroll view to selected row
24.08.2001 New Version: 3.15
new common-property: title (for mainframe)
23.08.2001 PrintUtil: Swing-failure on tableheadersize corr.
PrintUtil: table-print extended
PrintUtil: print-methods extended, returns count
Spread: setColumnHorizontalAlignment()
20.08.2001 PrintUtil.print with new parameter: scaleFactor
return-value: number of pages
page-number-definition
depencies: Spread, Graph
Date-Validation: e.g.22.22.2222 -> returns null
FileselectBox (OPEN) -> cancel returns null
14.08.2001 DocumentValidator, MyEdit korr.
11.08.2001 New Version 3.14
New Feature: Getting/Setting Beanproperties
on runtime (e.g.myControl.foreground)
Console: In/out-pipe
06.08.2001 New Version 3.13
Correction: commandline-argument with path
'@' references BasicControls (not Objects)
result-handling: !:
common-key: resizeable
New Control: Label (with alignment)
Hint: StringTokenizer failes on e.g. ""
Spread: New execute: ADDROW
New property: fitcolumn
xml-Tag:comment-error correction
Dialog: New property: onclose
Edit: No title -> No Label
Panel: correction, title-border
19.07.2001 NEW Version 3.12:
Controls->executeFromExternControl()
common-key: onclose=extern/nothing
Spread: resizeable=on/off
colortop,colorbottom,colorleft,colorright
coltypes (->validation for columns)
copyrow (copies the selected row)
15.07.2001 NEW VERSION 3.11:
Spread: col/row-editable-property (e.g.editable="row=1")
row-deleting (command=DELETEROW)
externtest.xml extended
13.07.2001 NEW VERSION 3.10: New Control-Element: Dialog
New: command="SHOW" to set the visibility
of a component (e.g. a dialog)
swing-control will be casted as Container
23.05.2001 NEW VERSION 3.00: Read configuration not from ini but xml-file!!!
cmdtype 'result' renamed to 'link'
New: control.Filetree
New: ProgramExternControllerInterface
//New: Program.commandlineHashtable to dynamically extend the commandline
20.04.2001 commandline-arguments extended (look at tsl.Program.setArguments())
MyParser, Program, MyApplet: AppletContent-loading enabled!
New: XMLParser.java, Tag.java => iniFile as xml-File
General: Directories/Structure changed!
07.04.2001 RMIActionInterface:RMIButton: startRemoteAction(), requestInfo()
tsl.Program extends JDialog to use the modal-property
commandline-arguments extended (look at tsl.Program.setArguments())