Internet Foundation Classes
Encyclopedia
The Internet Foundation Classes (IFC) were a graphics library
Graphics library
A graphics library is a program library designed to aid in rendering computer graphics to a monitor. This typically involves providing optimized versions of functions that handle common rendering tasks. This can be done purely in software and running on the CPU, common in embedded systems, or being...

 for Java originally developed by Netcode Corporation and first released by Netscape Corporation on December 16, 1996.

History

On April 2, 1997, Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

 and Netscape announced their intention to combine IFC with other technologies to form the Java Foundation Classes
Java Foundation Classes
The Java Foundation Classes are a graphical framework for building portable Java-based graphical user interfaces . JFC consists of the Abstract Window Toolkit , Swing and Java 2D. Together, they provide a consistent user interface for Java programs, regardless whether the underlying user interface...

.

Ultimately, Sun merged the IFC with other technologies under the name "Swing", adding the capability for a pluggable look and feel
Look and feel
In software design, look and feel is a term used in respect of a graphical user interface and comprises aspects of its design, including elements such as colors, shapes, layout, and typefaces , as well as the behavior of dynamic elements such as buttons, boxes, and menus...

 of the widgets.

Because its technology has been merged to constitute Swing
Swing (Java)
Swing is the primary Java GUI widget toolkit. It is part of Oracle's Java Foundation Classes — an API for providing a graphical user interface for Java programs....

 and Java 2D
Java 2D
In computing, Java 2D is an API for drawing two-dimensional graphics using the Java programming language. Every Java 2D drawing operation can ultimately be treated as filling a shape using a paint and compositing the result onto the screen....

, IFC is now no longer maintained.

Differences with Swing

Swing
Swing (Java)
Swing is the primary Java GUI widget toolkit. It is part of Oracle's Java Foundation Classes — an API for providing a graphical user interface for Java programs....

 draw a lot of features from IFC:
  • contrary to AWT
    Abstract Window Toolkit
    The Abstract Window Toolkit is Java's original platform-independent windowing, graphics, and user-interface widget toolkit. The AWT is now part of the Java Foundation Classes — the standard API for providing a graphical user interface for a Java program.AWT is also the GUI toolkit for a...

    , IFC were written in pure Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

    , thus being (at the time) browser-independent.
  • IFC already provided two Layout manager
    Layout manager
    Layout managers are software components used in widget toolkits which have the ability to lay out widgets by their relative positions without using distance units. It is often more natural to define component layouts in this manner than to define their position in pixels or common distance units,...

    s, that would be later included in the standard JDK
  • some IFC components were able to read HTML
    HTML
    HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....

     content from URL
    Uniform Resource Locator
    In computing, a uniform resource locator or universal resource locator is a specific character string that constitutes a reference to an Internet resource....

    s, but the implementation was still far from reliable.


However, Swing also improved IFC in a lot of ways:
  • IFC did not have a Model-View
    Model-view-controller
    Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...

     architecture
  • contrary to Swing, the Look and feel
    Look and feel
    In software design, look and feel is a term used in respect of a graphical user interface and comprises aspects of its design, including elements such as colors, shapes, layout, and typefaces , as well as the behavior of dynamic elements such as buttons, boxes, and menus...

     of IFC components was written in the components themselves, making it impossible to change it easily.
  • IFC components were not JavaBeans. IFC had a specific persistence mechanism, but it was a bit complex, and not compatible with the Java Serialization
    Serialization
    In computer science, in the context of data storage and transmission, serialization is the process of converting a data structure or object state into a format that can be stored and "resurrected" later in the same or another computer environment...

     API.
  • event mechanism was still raw, and the Event loop
    Event loop
    In computer science, the event loop, message dispatcher, message loop, message pump, or run loop is a programming construct that waits for and dispatches events or messages in a program...

     sometimes needed to be accessed directly.

Hello World

This is the classic Hello world program
Hello world program
A "Hello world" program is a computer program that outputs "Hello world" on a display device. Because it is typically one of the simplest programs possible in most programming languages, it is by tradition often used to illustrate to beginners the most basic syntax of a programming language, or to...

in IFC:

import netscape.application.*;
import netscape.util.*;

public class HelloWorld extends Application {

public void init {
super.init;
// Create a text field
TextField textField = new TextField(100, 24, 128, 24);
// Set the string to be displayed in the text field.
textField.setStringValue("Hello World");
// Add the text field to the view hierarchy.
mainRootView.addSubview(textField);
}

// This method allows HelloWorld to run as a stand alone application.
public static void main(String args[]) {
HelloWorld app = new HelloWorld ;
ExternalWindow mainWindow = new ExternalWindow;
Size size;

app.setMainRootView(mainWindow.rootView);
size = mainWindow.windowSizeForContentSize(320, 200);
mainWindow.sizeTo(size.width, size.height);
mainWindow.show;

app.run;
}
}


To be compared with the equivalent Java Swing
Swing (Java)
Swing is the primary Java GUI widget toolkit. It is part of Oracle's Java Foundation Classes — an API for providing a graphical user interface for Java programs....

code:

import javax.swing.*;

public class HelloWorld extends JFrame {
public HelloWorld {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
add(new JLabel("Hello, World!"));
}

public static void main(String[] args) {
HelloWorld app = new HelloWorld;
app.pack;
app.setVisible(true);
}
}

External links



The last places, where to download the IFC:
  • [ftp://ftp.uni-potsdam.de/pub/WWW/Netscape/navigator/plugins/ifc/1.0/ ftp-Server 1 Uni-Potsdam]
  • [ftp://ftp.uni-potsdam.de/pub/WWW/clients/netscape/plugins/ifc/1.0/ ftp-Server 2 Uni-Potsdam]
  • [ftp://ftp.uni-potsdam.de/pub/WWW/netscape/navigator/plugins/ifc/1.0/ ftp-Server 3 Uni-Potsdam]
  • [ftp://ftp.ruhr-uni-bochum.de/.subdisc1/local/jk.collection/ ftp-Server Uni-Bochum]
  • [ftp://ftp.anu.edu.au/sunsite/mnt/disk3/WWW/netscape/navigator/plugins/ifc/1.0/ ftp-Server SunSite]

All find from

The web-archive where is the last place to find really all files:

Additional you can still find IFC here:
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK