bookmarks  9

  •  

    A meta-programming approach to general data modeling. Introduction Meta-JB is a MetaClass/MetaObject layer providing generic access to model implementations, decoupling application logic from underlying implementation details, and allowing user interfaces (Swing, HTML, etc.) to be dynamically generated at runtime. By wrapping model implementations in MetaObject adapters, applications can interact with the model layer in a homogenous way. Description Meta-JB extends the Java Beans-based meta-programming concept to provide more generic access to object attributes and descriptions for any model object with an appropriate adapter. The descriptions of a class's properties (the MetaClass) and access to an object's attributes are decoupled from actual implementations by adapters implementing a Map-like name/value interface (the MetaObject). Because the thin framework is built on generic interfaces, it is not tied directly to real Java bean implementations and can also be used for anything that can access values by name. (Some examples are SQL result sets, HTTP request data, or simple hash maps.) Once a "class" has been described, the information can even be applied to different underlying implementations. The MetaClass/MetaObject layer is a foundation for dynamically generating user-level access to application object models. Toolkits are provided for generating Swing GUIs at runtime or dynamically rendering objects as XML using the class descriptions. On the drawing board is support for generating HTML forms and views as well. Future development may also extend to a collaborative data access layer.
    16 years ago by @gresch
    (0)
     
     
  •  

    Foxtrot is an easy and powerful API to use threads with the JavaTM Foundation Classes (JFC/Swing). The Foxtrot API are based on a new concept, the Synchronous Model, that allow you to easily integrate in your Swing code time-consuming operations without incurring in "GUI-freeze" problem, typical of Swing applications. While other solutions have been developed to solve this problem, being the SwingWorker (see also here for an update) the most known, they are all based on the Asynchronous Model which, for non-trivial Swing applications, carries several problems such as code asymmetry, bad code readability and difficult exception handling. The Foxtrot API cleanly solves the problems that solutions based on the Asynchronous Model have, and it's simpler to use. Your Swing code will immediately benefit of: * code symmetry and readability * easy exception handling * improved mantainability
    16 years ago by @gresch
    (0)
     
     
  •  

    Should you throw an exception, or return null? Should you use checked or unchecked exceptions? For many novice to mid-level developers, exception handling tends to be an afterthought. Their typical pattern is usually a simple try/catch/printStackTrace(). When they try to get more creative, they usually stumble into one or more common exception handling antipatterns. The antipattern concept became popular in the software development community with the release of AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis in 1998. An antipattern draws on real-world experience to identify a commonly occurring programming mistake. It describes the general form of the bad pattern, identifies its negative consequences, prescribes a remedy, and helps define a common vocabulary by giving each pattern a name. In this article, we'll discuss some fundamental concepts about the different types of Java exceptions and their intended uses. We'll also cover basic logging concepts, especially as they relate to exception handling. Finally, instead of prescribing what to do, we'll focus on what not to do, and take a look at a dozen common exception-handling antipatterns that you are almost certain to find somewhere in your code base.
    16 years ago by @gresch
    (0)
     
     
  •  

    JSefa (Java Simple exchange format api) is a simple library for stream-based serialization of java objects to XML, CSV, and FLR (extensible to other formats) and back again using an iterator-style interface independent of the serialization format. The mapping between java object types and types of the serialization format (e. g. xml complex element types) can be defined either by annotating the java classes or programmatically using a simple API. The current implementation supports XML, CSV and FLR (Fixed Length Record) - for XML it is based on JSR 173. JSR 173 (Stax) is a popular stream-based XML API for java providing an iterator-style interface ("pull"-mechanism in contrast to the "push"-mechanism provided by SAX). But JSR 173 defines a low-level API not designed for directly serializing java objects and back again. On the other hand traditional high-level APIs like JAXB or Castor are not stream-based, so that reading a xml document will generate java objects holding the data of the complete xml document in memory at the same time. Even the integration of StAX into JAXB 2.0 is only a first step to high-level streaming, as two independent APIs have to be used in parallel. JSefa provides a convenient and performant approach to high-level streaming using an iterator-style interface. It has a layered API with the top layer allowing the streaming to be independent of the serialization format type (XML, CSV or whatever). The current implementation provides support for XML, CSV, and FLR.
    16 years ago by @gresch
    (0)
     
     
  •  

    This open source software project connects the world of java with TWAIN.TWAIN is an application programming interface standard used to access scanners & digital cameras ... . This package was developed to scan an image in order to turn it into an *.sff file and then fax it. How does it work ? What happens ? 1. On loading: jtwain.java loads it's C++ counter part, the library jtwain.dll. 2. jtwain.dll will load "TWAIN_32.DLL" and get a function pointer to the DSM (Data Source Manager) entry point (twain state 2). 3. If loading was successful jtwain.java creates a new thread that calls nstart in jtwain.cpp. 4. Due to the fact that twain is signalling events through the OS-dependent event queues, we need to set up an application window including it's wndProc callback function. 5. After that ninitLib will open the DSM (twain state 3). Now the DSM is ready to handle device specific requests. 6. The native thread is then entering the event loop and calling jtwain.cbhandleGetMessage whenever it receives an event. 7. The twain entry function must be called from within the native thread. In order to do that a command can be initiated from arbitrary java threads by calling ntrigger. This will cause the native thread to call jtwain.cbexecute. Two commands can be triggered: 1. Select: The DSM will pop up a select dialog and the user can select a data source. 2. Acquire: The data source will pop up a user dialog that allows the user to set various settings and then either scan or cancel the request. Once an image has been acquired by the twain data source as a DIB (Device Independent Bitmap) a BufferedImage object will be created and the DIB data copied to this BufferedImage. The jtwain object informs the ScannerListeners of the new image.
    16 years ago by @gresch
    (0)
     
     
  •  

    JGraph X is the next generation of Java Swing Diagramming Library, factoring in 7 years of architectural improvements into a clean, concise design. JGraph X provides a simple, powerful API, as well a more application-centric feature set. The result is a low learning curve and faster implementation of customizations in your development. JGraph X shares the core model of mxGraph, so your JGraph X application more easily ports directly to an mxGraph web application.
    16 years ago by @gresch
    (0)
     
     
  •  

    Java provides a neat way to carry out long lasting jobs without have to worry about threads and hanging the application. It's called SwingWorker. It's not the latest thing on Earth (released with Java 1.6) and you may have already read about it. What I never came across was a practical example of the swing worker.
    16 years ago by @gresch
    (0)
     
     
  •  

    This document is a guide to help troubleshoot problems that might arise with applications that are developed using the Sun Microsystems Inc. release of Java Platform, Standard Edition 6 (JDK 6 release or Java SE 6 release). In particular, this guide addresses possible problems between the applications and the Java HotSpot virtual machine. The document provides a description of the tools, command line options, and other help in analyzing a problem. The document also provides guidance on how to approach some general issues such as a crash, hang, or memory resource issues. Finally, the document provides direction for data collection and bug report preparation.
    16 years ago by @gresch
    (0)
     
     
  •  

    Dozer is a Java Bean to Java Bean mapper that recursively copies data from one object to another. Typically, these Java Beans will be of different complex types. Dozer supports simple property mapping, complex type mapping, bi-directional mapping, implicit-explicit mapping, as well as recursive mapping. This includes mapping collection attributes that also need mapping at the element level. Please read the about page for detailed information on Dozer.
    16 years ago by @gresch
    (0)
     
     
  • ⟨⟨
  • 1
  • ⟩⟩

publications  

    No matching posts.
  • ⟨⟨
  • ⟩⟩