# The explorer pane

Logisim organizes tools into libraries. They are displayed as folders in the explorer pane; to access a library's components, you have only to double-click the corresponding folder. Below, I have opened the Gates library and selected the NAND tool from it. You can see that Logisim now stands ready to add NAND gates into the circuit.

If you look through the choices in the Gates library, you'll notice that there was no need for us to develop a XOR circuit earlier: It's built into Logisim.

When you create a project, it automatically includes several libraries:

- Wiring: Components that interact directly with wires.
- Gates: Components that perform simple logic functions.
- Plexers: More complex combinational components, like multiplexers and decoders.
- Arithmetic: Components that perform arithmetic.
- Memory: Components that remember data, like flip-flops, registers, and RAM.
- I/O: Components that exist for the purpose of interacting with the user.
- Base: Tools that are integral to using Logisim, though you probably won't need to dig into this library very often.

Logisim allows you to add more libraries, too, using the Load Library submenu of the Project menu. You can see that Logisim has three categories of libraries.

- Built-in libraries are libraries that are distributed with Logisim. These are documented in the Library Reference.
- Logisim libraries are projects built within Logisim and saved to the disk as a Logisim project. You can develop a set of circuits in a single project (as described in the Subcircuits section of this guide) and then use that set of circuits as a library for other projects.
- JAR libraries are libraries that are developed in Java but not distributed with Logisim. You can download JAR libraries that others have written, or you can write your own as described in the JAR Libraries section of this guide. Developing a JAR library is much more difficult than developing a Logisim library, but the components can be much fancier, including things like attributes and interaction with the user. The built-in libraries (other than Base) were written using the same API as JAR libraries can use, so they aptly demonstrate the range of functionality that the JAR libraries can support.

  Some JAR libraries are distributed without any information about which Java class to start with. When loading such a JAR, Logisim will prompt you to type a class name. This class name should be provided by whoever distributed the JAR file to you.

To remove a library, choose Unload Library... from the Project menu. Logisim will prevent you from unloading libraries that contain components used in a circuit, that appear in the toolbar, or that are mapped to a mouse button.

Incidentally, a library technically contains tools, not components. Thus, in the Base library you'll find the Poke Tool (), the Edit Tool (), and other tools that don't correspond directly to individual components. Most libraries, though, contain only tools for adding individual components; all built-in libraries other than the Base library are like this.

Next: The attribute table.