User Interface Basics

Let's take a tour of Manifold, beginning with the desktop and learning how to navigate within windows.  This topic assumes we have already read the Getting Started topic.

The Manifold Desktop

Launch Manifold and the desktop opens with a typically Windows-style menu bar and an icon-based toolbar at the top.  The Project pane and the Contents pane are docked on the right side of the Manifold desktop.   We can undock them by Alt-clicking their tabs.






Use File - Open to open a Manifold .map project file, and the Project pane will be populated with the contents of the project.  The title bar shows the name of the project:






The image above shows a project opened from a file called Aus   The project contains three drawings, which take data from their associated tables, and a map called Australia Hydro.   We can double-click the Australia Hydro map to open it:






The map opens up in a map window.  A tab at the top gives the name of the window.   In the illustration above, we have zoomed far into the map, which shows all water features in Australia.


Maps contain one or more layers that are drawings, images or labels.   Most maps use the default, "North up" orientation.  We can easily create a rotated view if we want an orientation other than North up.


Layer tabs at the bottom of the map appear for each layer.   We can drag those layer tabs left or right to set the order in which layers are displayed in the map, or we can double-click a layer tab to turn that layer off and on:






In the illustration above, we have turned off the WatercourseLines layer by double-clicking the tab.






We can switch between the Project pane and the Contents pane by clicking their tabs.    The Contents pane has a variety of useful panels.    It starts out with the Component panel, which reports info on the active layer, whether that layer is off or on.   The active layer is shown with a darker colored tab.   The Component panel also allows us to change the projection (coordinate system) of either the map window or of any layer in the map window, including a layer that is not currently shown.


We can click on the panel caption to choose a different panel:




Switching to the Layers panel, for example, allows us to control the order of layers, the opacity of layers, and to turn layers off and on, applying changes to many layers at once, if we like.    The Layers panel is more convenient to use than tabs when maps have many layers.   




Switching to the Style panel, we can see controls for changing colors and symbology.   In the illustration above we have clicked on the WatercourseAreas tab, so the Style panel shows formatting used in that layer.


Projects contains items like tables, images, drawings, maps, data sources, queries, scripts, and more.  These are called components.  




Tables - Where all data within Manifold is stored in one form or another.  Opening a table window shows a table in classic row and column presentation.    A drawing or an image is just a viewport that shows geometry data or raster tile data that is stored in some table.   That is why when we see a drawing or image in the project we will usually see a similarly-named table from which it takes its data.


Drawings - A visual display of vector data stored within tables using a variety of geometry types. The same data can be seen in multiple different drawings using different styles, and the same drawing can be open in multiple windows with different selections and views in each.


Data Sources - Data linked into a project from an external source, which could be a file, a file database, a database serve or a web server, covering virtually every database and file type encountered in database or GIS work.


Images - A visual display of raster data stored within tables as tiles using a variety of different data types and channel combinations.   All rasters are called images in Manifold even those which are terrain elevation or other non-photographic data.


Labels - Text annotations automatically created from the fields of a drawing's table.


Layouts - Layouts are compositions on virtual sheets of paper, allowing us to create documents showing maps or other components as PDF documents or hard copy printed sheets.


Locations - Locations save a particular geographic location with an associated scale, thus saving a given view in a map or other window to which we can return.


Maps - Consist of a stack of layers where each layer is a drawing, image or labels component.


Queries - Written in SQL, queries manipulate data and projects, for example, creating new tables and other components, performing calculations,  altering the structure of databases and tables, and extracting, editing and analyzing subsets of data.


Scripts - Manifold includes built-in support for scripting in eleven different languages with six to eight always available and the remainder easy to install.  Scripts provide custom capabilities and can automate virtually anything.


Comments -  Text saved and displayed in a comments window provides a simple but  convenient way to save notes about a project or to save text as a scratch pad.  For tips on editing Comments, see the Editing Queries, Scripts and Comments topic.


Folders - We can organize our project by using folders.


Opening Components

We can open a component by double-clicking it in the Project pane:






Double-clicking on the Lakes Table component opens it in a window.  A tab for the Lakes Table window appears next to the tab for the already open Australia Hydro map window.  tech_tina_sm.png


Tech Tip:  Manifold opens up new windows as docked windows, as seen above.   In real life most Manifold users will Alt-click the name tab for a window to undock it.   They will then resize the window and move it around on their Windows desktop to a convenient place.  Monitors are cheap, and our time is expensive, so it makes sense to use two or three monitors on our computer to provide plenty of space on our Windows desktop to work more effectively.   


Manifold users often have many undocked windows, and they will often have several different Manifold projects going at the same time so they can copy and paste between those projects.   Workflow can be much easier using several different Manifold projects open in different Manifold sessions at the same time.


We can switch back and forth between different windows that are opened by clicking on their tabs,   For example, we can click on the Australia Hydro tab to switch to that window:






The Manifold desktop by default arranges windows to the left and panes to the right.    We can drag the boundary between the windows section and the panes section to make the docked panes section wider or narrower.










icon_message_red.pngIf we double-click open a component and a red message icon appears in the window's lower tab, we should choose View - Messages from the main menu to read the message.   Blank drawings showing a message icon usually indicate lack of a spatial index, which Manifold will offer to build for us.  Blank images showing a message icon usually indicate a need to build or update an index or intermediate levels, which Manifold will offer to do for us.


i_mouse_moves01_02.pngPanning and Zooming with the Mouse

The cross cursor buttons in the toolbar set mouse mode.  The default is navigation.  The drop-down menu on the cursor mode button provides other choices depending on the context, such as creating objects in drawings, or adding text frames in layouts.



Double-click on an image, drawing, map or other visually-oriented component to open it in a window.  By default, the component will be zoomed to fit, that is, with a zoom level set so the entire component fits within the window.


Click-and-drag anywhere in the window to pan the view by dragging it.



Right-click and drag to draw a zoom box with the right mouse button.  Release the button and the view will zoom into that box.


Wheel to zoom in and out with the mouse wheel.  


Ctrl-click the layer tab at the bottom of a window to Zoom to Fit that layer's contents.


Shift-Ctrl-click the layer tab at the bottom of a window to Zoom to Fit the selection, if any, in that layer.


Menu buttons allow Back and Forward commands, Zoom to Fit, Zoom In, and Zoom Out.   Mice equipped with auxiliary buttons giving Back and Forward functionality will also work.


Most users will navigate using the mouse.  Using click-and-drag to pan, right-click and drag zoom box and the wheel to zoom in and out is very fast and convenient.


Zoom to Fit Shortcuts

The following commands work with any window that has a tab at the bottom:  map windows, drawings in their own windows, images in their own windows, etc.


eg_quick_zoom_to_fit01_01.png eg_quick_zoom_to_fit01_02.png

Ctrl-click the bottom layer tab of any window to Zoom to Fit the contents of that layer.


eg_quick_zoom_to_fit01_03.png eg_quick_zoom_to_fit01_04.png


Shift-Ctrl-click will Zoom to Fit any selection that is in the layer.   This is a great way to see in a drawing or map layer those objects that have been selected in a drawing's table.  See the Manifold 9 - Incredibly Convenient Zooms video for the above in action.


Changing Colors and Appearance

Change colors and formatting of layers by using the Style panel in the Contents pane.  






Manifold allows a mix of areas, lines and points in the same layer, so the Style panel shows controls for all three types of objects.   To change the Fill color for areas from a soft green to a slate blue, we click on the parameter button for Fill color for areas.






We choose the desired color from the many colors in the drop down menu, and the display is immediately updated.   If we like, we can specify a thematic format for any parameter by selecting a field that will drive that thematic format.   In the illustration below we use the mfd_id field to drive thematic formatting for Fill color for areas, so the areas are colored based on the value of their mfd_id field, interpolating between five different colors.




The very small illustrations used in this documentation result in a very cramped layout for the Style panel, making it difficult to illustrate thematic formatting controls.  In real life, we either would work with a full screen display, which provides plenty of room, or we would undock the Contents pane, as seen above, to make it as big as we would like.


See the main Style topic for links to using the Style pane with drawings, images and labels layers.  Manifold provides a vast number of capabilities and symbol options to provide exactly the look we desire.


Controls for Windows and Panes

Click on the tab of a docked pane or window to bring it to the front of the stack for viewing.  Double-clicking on a component in the project pane will also bring its window to the front of the stack if it has already been opened.i_alt_to_undock.png


Dragging a  tab will move that window or pane left or right in the stack of docked windows or panes.


Close a docked window or pane by clicking on its tab to choose it and then click the X "close" button in the tab strip.   Windows and panes may also be closed via menu choices in the Windows and View - Panes menus.


Ctrl-Click to Organize

Ctrl-click the tab of a docked window or pane to move it into a second, horizontal group of docked windows or panes that is positioned in a row horizontally below the default group of stacked windows or panes.


Ctrl-click the tabs of docked windows or panes to move them between the upper or lower groups.   


Drag the boundary between the upper and lower groups of stacked windows or panes to adjust the vertical area allotted for each group.

Alt-Click to Undock

Alt-click the tab or title bar of a window toggles the window between docked and undocked.   Alt-click the tab of a docked window or pane to undock it, making it a separate window. Alt-click the title bar of an undocked window or pane wito dock it again.


Undocked windows or panes may be resized and can be moved anywhere on our Microsoft Windows desktop, including outside the Manifold desktop area and including being spread out across multiple monitors.    


If an undocked window becomes hidden when some other application is clicked and brought into foreground, clicking on any Manifold window to move the focus to Manifold will bring all undocked Manifold windows to the foreground as well.


Tab Strips

A row of tabs is called a tab strip.   Click a tab to bring that window or pane to the top for viewing.   Tabs help us manage a Manifold desktop when several windows and panes are open.  Tabs are also used to manage layers in maps.


The illustration below shows a Manifold desktop with a map window open on the left and two panes open on the right.  The map has three layers, shown in a tab strip at the bottom of the map window.  






The panes on the right are the two main panes, the Project pane and the Contents pane.   The Project pane is opened by default when Manifold launches.  Additional panes may be opened from the View - Panes menu and will be added to the stack with the Project pane.   






Opening a pane adds it to the set of tabs.  The illustration above shows two panes have been opened: the default Project pane and the Contents pane.  The Project tab is shaded because it is the active tab.   Clicking on a tab will switch to the pane for that tab, bringing it to the front for viewing.   For example, we can click on the Contents tab to bring the Contents pane to the front.






The Contents pane has panels that apply to whatever window or window tab is active.  Panels that are not open appear as a title bar in a stack at the top or bottom of the Contents pane.


The last panel active will appear when we click the Contents tab, with the Component panel opening by default.   For example, in the illustration above the Component panel displays coordinate system information for the active Map window, Australia Hydro, as well as coordinate system information for the active layer in that map, the Lakes layer.






If we click on the WatercourseAreas layer tab in the map to make it the active layer in the map the Components panel will switch to displaying information for the WatercourseAreas layer.   






We can pop open any of the Contents pane panels by clicking the panel name and choosing another panel in the pull-down menu.  


For example, if we can click on the Component panel's title bar and then click on the Layers choice to switch to the Layers panel.






The Layers panel provides controls to manage many layers, including the opacity of a layer.    We can switch back to the Project pane by clicking on the Project pane tab.

Seeing the Full Names of Tabs

The illustration below shows a Manifold project with five docked windows open in the Manifold desktop.




There is one map window, three drawing windows and one table window as can be seen from the icons in the tabs.   Given the small size of illustrations the tabs are too narrow to show the full names of the windows.  That can happen in big desktops too if we have many tabs open.   Tab strips will try to fit all tabs into the available space, reducing them in size as much as reasonable but eventually as they get too small for the available area tabs will be scrolled out of view.   



To display the full names of tabs for windows or panes or to see tabs that are out of view we can click on the downward triangle in the tab strip.   That will open a pull-down menu that shows the full names of each tab with a button by the name of the tab that is displayed.  We can click on an item in the list to choose that tab and bring that window to the top for viewing.


Tab strips will always keep the selected tab in view. Switching to a tab that is currently scrolled out of view brings it into view, so if the tab strip is not large enough to show all tabs (even with tab size reductions), these tabs can be accessed via the pull-down menu.

Undock a Window





Panes and windows may be undocked by Alt-clicking their tab.  For example, we can undock the Project pane by Alt-clicking the Project pane tab.






Undocked windows and panes may  be resized and moved about on our Windows desktop.    See also the Example: Project Pane Tutorial topic for a guide to typical actions using the Project pane.

Organize with Ctrl-Click

Ctrl-click a docked pane's tab to open that pane vertically below the other pane.  Drag the border as desired between the two open panes.  Ctrl-click again either tab to close them into a single tabbed row.





Ctrl-click the Contents pane tab to open the Contents pane in a second row below the Project pane.






The Contents pane opens up in a second row below the Project pane.  We can drag the border between the two to arrange the relative heights of each.


Ctrl-click to arrange a docked window into a second row of windows:






We Ctrl-click the table's tab above to open it in a second row.






We can drag the boundary between the upper and lower window to arrange each to the vertical size we prefer.   Ctrl-clicking the table's tab will again close it into a single tabbed row.


Status Bar

A status bar at the bottom of the main Manifold desktop window provides information and tips.  A small dimple in the lower right corner of the desktop changes form and color when Manifold is working in foreground or background.


i_icon_busy_dimple.png   i_icon_busy_dimple_active.png   i_icon_busy_dimple_hover.png

When the activity indicator shows that Manifold is working, hovering the mouse cursor over the dimple will report the number of active background processes.




Right-click onto a blank portion of the status bar to turn optional panes on or off.  The Position pane and the Scale pane in the status bar are on by default.




The Position pane reports the current mouse position, using Latitude / longitude decimal degrees format by default.   Right-click onto the Position pane to change the format.




Right-click onto the Scale pane to change the scale used for the active window.   Changing the scale changes the zoom level.



We can choose from a list of typical scale values or specify a custom scale.  The active window will immediately zoom to the scale specified.

Cursor Modes

In the beginning we spend most of our time viewing data.   As we learn more we will want to make measurements using the Tracker, or to edit drawings by creating points, lines or areas.




The drop-down menu on the mode button lets us choose a different mode, offering choices depending on what window is active.  When working with a drawing, if we choose Create Line the mouse cursor user interface switches from Navigation mode into Create Line mode.




The mode button always shows what mode applies for that window.   


ico_nb_arrow_blue.png  Different windows can have different modes, with one window being in Create Line mode while another window stays in Navigation mode.  As we switch between windows the mode button will automatically switch to show the mode for that window.    The drop-down menu for the mode button will show appropriate choices for whatever is the active window.




For example, if a layout window is active the drop-down menu for the mode button will show choices that work only for layouts.


Make measurements in open windows using the Tracker tool to report length and bearing.

Getting Info / Show Attributes

Objects seen in a drawing will often have attributes, that is data fields associated with that object's record in the drawing's table.   We can see that information by clicking on a drawing's tab to make it the active layer in a map and then alt-clicking onto the object.


In the illustration below we have opened the project that may be downloaded from the Manifold Viewer download page as an example.   The map displayed has three layers: a drawing showing the find locations of Martian meteorites that are indicated with magenta triangles, a drawing showing the find locations of lunar meteorites that are indicated with blue triangles, and a background layer that is a satellite image automatically downloaded from a Google imageserver.






We click on the martian meteorites layer tab to make it the active layer (in case it is not already the active layer) and then we alt-click on a Martian meteorite location to see the data for that object.  That will switch to the Contents pane and automatically pop open the Record panel's Values tab to show fields for that object's record.  


If we alt-click onto an object in a layer that is not the active layer, nothing happens.  That is an important feature that helps us pick out objects of interest in busy maps.  If there are other objects in other layers, such as an area object in a layer beneath the active layer, we do not have to worry about accidentally alt-clicking those instead of the object we want.






The Record panel's Values tab shows the field values, called attributes in some GIS packages, for the object we alt-clicked.  In the map window the object is marked with a small square at the coordinate location that defines the point.  In this case we see that the name of this meteorite is Dar al Gani 1051, that it was discovered in 2000 in  Libya, and that it is officially verified as both a meteorite and as a piece of Mars that has made its way to Earth.  






If we click on the Coordinates tab of the Record panel we see the coordinate geometry of the alt-clicked object.  In the case of a point that is only one X,Y coordinate row, but in the case of a large area that could be many rows of coordinates that define the area.   The blue box marking the designated object increases in size.  Note that the coordinates reported in the Record panel may not be the same as reported in the status bar Location readout, since the status bar reports the position of the mouse cursor.   A mouse cursor click very near the object will be interpreted to be a click on the object.


Important: When the Coordinates tab has been selected we cannot Alt-click onto a different object in the map since the focus in the map is on editing the object by dragging coordinate boxes.  To Alt-click a different object, choose the Values tab to allow alt-clicks in the map.






Panels in the Content pane are always live action, so we do not need to worry about closing dialogs before doing something else.  If we want to see record values for a different object, such as the neighboring Martian meteorite, we simply Alt-click on that and the Record panel will instantly show values for that object.






The name of this meteorite is Dar al Gani 735, and it was discovered in 1997.   


Note from the illustration above that a scroll bar appears in the Record panel, since there are more fields in the list than can fit into the current size of the pane.    Navigate within the Record panel using the scroll bar, or use keyboard commands such as the up arrow and down arrow, or Page Up and Page Down, or Ctrl-Home to jump to the top of the list and Ctrl-End to jump to the bottom of the list.




We can Alt-click the Contents tab to undock the Contents pane and then resize it to provide more vertical space for display of all fields.   


The Values tab allows editing of field values.  For example, if we wanted to we could double-click into the 1997 value to change it to 1996 if the original value was incorrect.   Field values that may be edited are shown with white background while field values that cannot be edited in the Values tab are shown with light gray background.  For example, we do not edit the geom data type in the Values tab.  Instead, to edit object geometry (in this case simply moving the point by editing its coordinates) we would click on the Coordinates tab and edit the coordinates there, or we could click on the Coordinates tab and drag the point to a new location in the map window.






If we double-click open the drawing's table we can find the meteorite to see it in the context of the table.  In the illustration above we have ctrl-clicked the meteorite to select it.   The meteorite icon in the drawing layer switches to red selection color and the corresponding row in the table also switches to red selection color.


We can adjust the width of columns in a table and hide or show columns using the Layers panel in the Contents pane.

Open in Multiple Windows

Double-click an item in the Project pane to open it in a window.   The same component can be open in more than one window at the same time, with each window providing totally independent panning, zooming, and other navigation capabilities.   i_window_newwindow.png


To open a component in more than one window:


  1. Open the component by double-clicking it in the Project pane.

  2. Make sure that window is the active window by clicking its tab or title bar.

  3. Choose Window - New Window from the menu.


Opening the same component in another window will add a distinguishing number to the name shown in the tab or title bar.  For example, if we open a table called Customers in a window and then we open the same table in a second and third window those subsequent windows will be named Customers (2) and Customers (3).


Windows for Everything

Windows display the contents of components in the project.  Windows appear in a stack of docked windows in the large open area of the Manifold desktop, each window with a tab giving its name.


Different components will appear in windows adapted to display their contents with three basic types of windows used:





A map window:



Map windows have a tab strip at the bottom of the window that shows all of the layers in the map.  Double-click on a layer tab to turn that layer off and on.

A drawing window:



Drawings can include a mix of areas, lines and points.  Like Map windows, drawing windows also have a tab strip at the bottom of the window that shows all of the layers in the drawing window.  Double-click on a layer tab to turn that layer off and on. The above drawing uses lines to show water courses in Australia.  The same drawing also participates as a layer in the map window.   

An image window:




While we usually think of images as photographs, in Manifold an image can be a visualization of any raster data set.   Like Map windows, image windows also have a tab strip at the bottom of the window that shows all of the layers in the image window.  Double-click on a layer tab to turn that layer off and on.   The image above, for example, shows a false color image where the colors represent the intensity of gamma ray emissions from radioactive potassium, thorium and uranium.  Blue colors indicate greater intensity from uranium.

A table window:




Everything in Manifold is ultimately a table so we should master table windows.  We normally would work with tables in much larger, most likely undocked, windows than seen above.   Table columns can be read-only (light gray background) or fully editable (white background).


ico_nb_arrow_blue.pngA table must have an index to be editable.  See the Editing Tables topic.

A command window, for SQL:



With everything a table in Manifold, we can do whatever we like with a query in a Command window using SQL, by far the most popular of all languages for databases.  The query text above is:


SELECT [NAME] FROM [Lakes Table]

   WHERE StringLength([NAME]) > 1;


The query builder makes it easier to create queries with greatly reduced need to manually keyboard.   Manifold can also write queries automatically for us, either using a simple drag and drop interface or a dialog button.

The result of a query:



Run the query by pressing the ! Run button in the main toolbar.   Command windows provide a query builder, a results tab and a log tab that facilitate creating and running queries.  

A command window, for V8:



We can program Manifold in many languages. See the Scripts topic.  The script above uses V8 JavaScript to compute a factorial.  


function factorial(n){

  return n===1 ? 1 : n * factorial(n-1);




V8 is recursive, so we can use recursion to write an elegant and fast factorial function.  JavaScript using V8 is most convenient and considered the default standard language for Manifold since V8 is built into the default Manifold installation, along with many other languages.  Among the eleven languages Manifold automatically supports, both IronPython and IronRuby are automatically supported if installed.  

Running a script:



Press the ! Run button to run the script.  With V8 automatically installed by Manifold and tightly integrated into Manifold it is easy to write high performance JavaScript.

A map window:



Maps can combine any visual component, such as drawings, labels and images.   The illustration above shows the drawing of water courses with alternate formatting, a bright green color, shown as a layer above an image layer brought in automatically through Internet from the Microsoft Bing image server.

A styled image window:



We can apply Style on the fly to any drawing or image, even those dynamically brought in from web servers using protocols like WMS, TMS or others.   We can even style web server images from commercial web servers like Microsoft's Bing or Google Maps.  The above shows Bing dynamically restyled.

Another styled image:




The above shows the same presentation using a forced palette and hill shading for the Bing image.





Above, we see the same map zoomed further in.


Navigating Table Windows

icon_table.pngTable windows provide a view into tables using a classic row and column presentation: each row is a record and each column is a field in those records.  The intersection of a particular row and column, that is a specific field within a specific record, is a cell.   




i_table_parts_cursor.pngDouble-clicking open a table in Manifold will show it in a table window, as seen above.   Tables show data in a classic grid presentation, with rows and columns.  Each row is one record in the table and the various columns show the values for fields in each table.    Manifold uses the words row and record as synonyms and the words column and field as synonyms as well.   If we say column handle we mean the same thing as field handle, for example, and if we say row handle we mean the same thing as record handle.    In addition, GIS people will often refer to fields as attributes.  


Click on a table's title bar or onto its tab when docked to move the focus to that table.  We can also click on a cell in the table to move the focus to that table and to make that cell the current cell.  A table window always has a current cell indicated by a dotted line box called the cursor.  The current cell's column handle and row handle will be darkened as well.  When a table window opens it is filled with records starting at the top of the table and the current cell will be the first column of the first row in the upper left hand corner.  


The current cell indicates the focus of any intended activity.    We can move the focus by clicking on any cell to make it the current cell or by using the keyboard arrow keys to move the current cell down, up, left and right with each click of an arrow key.    When we move the current cell up, down, left or right beyond the current view in the window, the window will scroll up, down, left or right to bring more rows or columns into view.


Pressing the keyboard Page Up and Page Down keys to move the current cell up and down one window's worth of records at each key click will move the focus faster and cause the window to scroll faster up and down.  


The Home key moves the current cell to the left-most column of the current record.  The End key moves the current cell to the right-most column of the current record.  tech_tina_sm.png


Tech Tip:  The Home key is particularly useful in tables because it will always move the cursor to the first field and also will scroll the table so that the current cell is in view.   For example, if we use Edit - Find to find a record to scroll to that record we press the Home key to quickly bring it into view.   Keep in mind that Manifold tables are not ordered so jumping back and forth using the Home key does not somehow confer order where there is not.   To get order use a query that temporarily displays the table in sorted order using ORDER BY.


Ctrl-Home moves the current cell to the first, topmost record of the table, still  within the current column.   Ctrl-End moves the current cell to the last, bottom record of the table, still within the current column.


If there are more columns than will fit into the window a horizontal scroll bar will appear.   We can use the horizontal scroll bar to pan the window's view into the table left and right.  Right-clicking on a column title opens a menu of commands that adjust the displayed widths of columns.

Small Tables / Big Tables

Table windows are useful for small tables.  Big tables are too big to browse interactively, so a table window will show only the first 50,000 records. Tables in a Manifold project can have tens or hundreds of billions of records when stored in external data stores.  Tables stored in a Manifold project stored in the .map project file are limited to a maximum of 2 billion records (2 x 10^9 records).


Even 50,000 records are too many records to look at one screen at a time.   At approximately 50 records per screen and a one-foot tall monitor display, that is 1000 feet or 300 meters worth of table to browse one screen at a time.  A table with two billion records is over 7600 miles or over 12000 km of screens to browse one screen at a time.    In comparison, the distance from New York to Beijing is only 6900 miles, or less than 11000 km.  


Another way to get a feel for the enormous size of a table with two billion records:  Suppose each display screen in a table window on our computer shows 50 records.  Suppose our full-time job is to look at 10 screens a minute (one every six seconds), for every minute of every work hour for eight hours per day.    If we work five days a week all year long, taking just one two-week vacation per year, it will take us over 33 years to scroll through that single table at that pace.  Is there any chance that in day 12 of month 3 of year 15 we would remember anything that we saw in a few hundred screens on some day years ago?  None.   That is why browsing tables with table windows is for small tables, and why Manifold provides tools like SQL queries to help us find data within and to get our heads around bigger tables.

Scroll Bars

If there are more records than will fit in view in the window a vertical scroll bar will appear.   The vertical scroll bar is not a precise tool but is simply a relative aid to panning the window's view up and down through records near those that have been browsed.    If we are used to big data we know that scroll bars are basically useless in really big tables.  See the discussion in the Table Windows and Big Data essay.


The vertical and horizontal scroll bars pan the window's view into the table: they do not move the focus, that is, the dotted box outlining the current cell.   Right-click on a scroll bar to call up a context menu of useful choices.   The context menu is useful for horizontal scroll bars but of limited utility for vertical scroll bars.


For example, we could click on a cell to designate it as the current cell and then use the vertical scroll par to pan the window's view so the current cell is no longer in view.   To get it back into view we could either use the vertical scroll bar to pan the window's view back to where we can see the current cell, or we could just press the Home key or left arrow key to move the current cell to the first column of that current row and the window's view will automatically to bring that record into view.

Sorting Table Windowstech_angus_sm.png

Important:  As with any big DBMS, tables in Manifold are not ordered.   There is no guarantee at all in what order records will be displayed.   To display records in some particular order we can sort columns in a table window, or we can create a results table - for viewing purposes - from a query using ORDER BY.     If we are not familiar with big-time DBMS products like Oracle, SQL Server, DB2 or PostgreSQL, that Manifold tables are unordered may come as a surprise.  See the Tables topic and the ORDER BY topic for discussions why tables are not ordered.


Clicking a column handle will sort the table for all fetched records by that field.   Clicking the column handle again will sort the table in reverse order by that field.  Keep in mind we are not sorting data in the table itself: as with all high end database systems table data within Manifold is always stored in unsorted form.   We are only sorting the display of the table data in the table window.




The table window above shows the one thousand largest cities in the US.   Clicking the state column handle sorts the table window by state name, in ascending order.    Clicking the state column handle again would re-sort the table window by state in descending order.




Sorting the table window by state means that all records displayed by the window with a state value of Alabama will appear before those from Alaska, which all will appear before those from Arizona and so on.   Within each state records are not ordered.    If we would like them to be ordered within each state by some other field we can Shift-click on the column handle for that other field.  See the Tables topic for an example.

Editing Tables

Edit the structure of a table, adding or deleting columns, indexes or constraints, using the Edit - Schema dialog. tech_tina_sm.png


Index Required:  To be editable tables must have an index and they cannot be read-only.  If a table has a light gray background in all of the columns it is not editable.  Having an index is a good idea in any event because it makes work with tables faster and it enables facilities like interactive selection.


Add a new row to a table by double-clicking into the last row, marked with a * asterisk in the row handle, and adding info into cells.   Press Ctrl-Enter or click the row handle to commit the new row.


Manifold provides two options for editing the contents of cells in tables:




Any changes we make to a record within a table window that are shown with blue background color are temporary until we command the table window, with a Ctrl-Enter or a click on the row handle, to commit those changes by dispatching them to the table.  Cells shown with blue background color have changes that can be abandoned.  Cells with normal, white background that have been edited have had their changes already committed to the table.


For information on editing tables, see the Editing Tables topic.

Finding Records

Manifold provides many facilities for working with tables, such as queries written in SQL and dialogs or panes such as the Select panel and Transform panel.  As with most Windows applications, we could use the Edit - Find command to find desired text in table windows.   In addition, Manifold provides a more powerful Select panel.





Consider a project showing a docked table as seen above.






We click on the Contents pane tab, and then we click on the Component panel's title and choose Select to switch to the Select panel.






In the Select panel we choose the Text Contains template, and then we click into the Value box and we choose the Name field from the list of available fields.  We have entered text in the Filter box to make it easier to find the Text Contains template in the long list of available templates.  In the Search for box within single quotes we enter the text to find.  As we begin entering characters, from the very first character Manifold will automatically preview in blue preview color any records that are found that match whatever characters we have entered. 





As we continuing entering characters Manifold will refine the preview.  Note that Manifold will dynamically preview in blue color all records that match the text we specify, updating the matches on the fly as we add characters.    In the two illustrations above when we keyboarded Cou there were three records in sight that matched in view and were previewed, but as we added the additional e character to make Coue only two records were previewed.  




We can select the previewed records by pressing the Replace Selection action button.






To show only selected records, we choose View - Filters - Selected to filter the table to only showing selected records.





Right away, the table shows only selected records.

Table Windows are Populated as Needed

Table windows will automatically be populated with as many records from the beginning of the table as will fit into the window.  Additional records will be fetched and displayed on the fly as we scroll down through the records using either keyboard clicks or panning the view downwards through the table using the vertical scroll bar.    Pressing the down arrow at the bottom of the vertical scroll bar control will scroll the table downwards continuously, growing the scroll bar display as more and more records are fetched on the fly into those being browsed by the window.


Table windows allow us to browse a table by looking at those relatively few records that will fit into a window and to edit the records we see.   Table windows allow us to see records, which we might locate using Edit-Find or other tools, along with those records that just happen to be immediately around them.  That can be useful when editing records or when setting up test cases in applications development, but manual peeks at relatively small portions of data are no replacement for effective use of SQL and other big data tools.   



Tech Tip:  Even if we scroll through very many windows of records we will see only a small part of a table that has millions of records.   Given that most big data is unsorted, the records we might see in a window cannot be assumed to have any special relationship with each other based on their position in the table.  For that matter, almost always in databases the records shown are not ordered: to see them in some meaningful order we should use queries with ORDER BY and similar constructs.    See the discussion in the Table Windows and Big Data essay.


To find relationships within big data we should be using tools like SQL in preference to manual browsing with table windows.   See the Essay on that topic.

Table Window Keyboard Shortcuts



Manifold prints to hard copy or to PDF from layouts.   We can print a visual window such as a map, drawing or image window using File - Print Preview.   The File - Print Preview command pops open a pre-composed, temporary layout using default settings that we can immediately print to hard copy or PDF using File - Print.   If we like the temporary layout Print Preview creates we can save it as a permanent layout using Edit - Save as Layout.  


For greater control over print jobs such as creating more sophisticated compositions using multiple frames, we first create a layout, we customize the paper size and margins using File - Page Setup, we tinker with the layout to add frames, repositioning them, changing views within the frame and so on, and then we use File - Print to print the layout to PDF or to a hard copy printer.


Example:  Tables

In the example we open and reposition windows, using the two system tables as examples.   






We launch Manifold and in the Project pane click on the + button to expand the System Data folder.






That shows the two system tables that are a part of every Manifold project.   We double-click on the mfd_root table to open it.






The table opens up as a docked table window.   The window's tab gives the name of the table.  The table's background is light gray color to indicate the fields are read-only, since the mfd_root table is maintained by the system.


In the Project pane we double-click on the mfd_meta table to open that table as well.






The mfd_meta table opens as a docked table window, with its name in another tab next to the tab for the mfd_root table opened previously.   There are more fields than will fit horizontally, using default field widths,  into the small size of the desktop we are using for the sake of screen shots, so a horizontal scroll bar appears at the bottom of the docked table window.   We can scroll that to the right to see more fields.


By clicking on the tabs we can bring whatever table window is desired to the foreground for viewing.    We can Ctrl-click on a layer tab to automatically move that table to a split-screen presentation where it occupies the lower portion of the region for docked windows.






When we Ctrl-click on the tab for the mfd_meta table it is automatically repositioned at the bottom part of the display region for docked windows.  Ctrl-clicking a tab will move that window back and forth between the upper portion of the display region or the lower portion of the display region.


We can drag the boundary between upper and lower regions to change the vertical space allotted for upper or lower regions.






We will drag the boundary upwards to provide more vertical room for the lower region.






So far we have been working with docked windows.   We can undock a window by Alt-clicking its tab.  We will undock the mfd_meta table by Alt-clicking  its tab.






The resulting undocked window may be moved about to any location on our Microsoft Windows desktop.  It may be moved outside the Manifold desktop and even moved to span multiple monitors if our Windows desktop extends across multiple monitors.  It may be resized by dragging its corners, for example by dragging the upper-left corner.






We can resize the window by dragging its lower-right corner to the right to make it wider, so that more of the fields in the table come into view.






We can also  re-arrange the widths of fields in the table.  To do so we drag a column name divider to the left or right.  For example, we can make the mfd_id field narrower by dragging the column divider to the left.






That changes the width of the column.   The mfd_meta table, which is a system table that lists all properties for various components, also automatically gains some more records to provide the Style information for various fields as JSON text.   For example, it lists the Size, that is the width, of the mfd_id field in the mfd_meta table as being 38 points wide, the width to which we have just set the width of the field by dragging the border.






We can change the width of other columns as well.   At any time if we want to dock the window again we can Alt-click on the title bar.






That will once more dock the window.

Example: Navigation

In this example we open a detailed satellite image of Paris, slightly over 9 GB in size, and then we use the mouse to zoom in and then to pan the view.






We open a project called Paris Image.  Within the Project pane we double-click onto the Paris image to open it.  Using right-click-and-drag we draw a zoom box with the right mouse button.






The window zooms into the region we drew with the box, with the river Seine winding through the center of the view.   Once again we draw a zoom box by using right-click-and-drag to zoom into the region around the Arc de Triomphe.






This zooms us closer, and once again we will right-click-and-drag to zoom even closer.   If we have a wheel mouse we could also use the wheel to zoom in and out.






We can now pan the scene by simply clicking-and-dragging.  For example, we can click-and-drag beginning at a spot near the right side of the window.






As we click-and-drag the display moves in the direction we drag.






When we release the mouse button to end the click-and-drag operation the scene will fill in.





Once we get used to the speed and convenience of the above there is no way to do without it.

One more view...

If we zoom box to center on the Arc de Triomphe and then choose View - Zoom to Native we command Manifold to automatically zoom the display so that one pixel in the data corresponds to one pixel on the screen, that is, native resolution.  That zoom setting usually provides the best view of a given image's resolution.






In this case we can see that our 9 GB image of Paris is detailed enough so that we can see every vehicle in the center of Paris and even see individual people.   We can count the people in line to enter the Louvre.   The image above shows people on the circular plaza surrounding the Arc, and people walking about the observation platform on the roof of the Arc.



tech_yoshi_sm.pngTech tip: If a component such as a drawing opens and does not seem to be zoomed to fit, keep in mind that it might actually be zoomed to fit but we cannot see very small objects at the extremities of the view.   Vector drawings often contain very small objects that might not be easily seen at a zoom level that fits the entire data set into a window.    


For example, a drawing that shows US states and territories will include many small islands far from the mainland mass of US states.    If we open such a drawing we may be surprised to see the continental US is just a small part of the display with what seems to be lots of empty space around the continental US in the window.  But if we were to zoom into that empty space we might see US possessions far from the mainland that are islands and not easily visible when the data set is zoomed to fit.  


To take another example, drawings might contain errors that create spurious points located very far away from all the rest of the data.   A classic example is the case of errors when geocoding street addresses that result in a latitude/longitude of 0,0 instead of the correct geographic location.  


For example, suppose we have geocoded addresses of customers in Los Angeles and then when we open a drawing showing those geocoded addresses as points we are surprised to see a tiny clump of dots near the left edge of an otherwise empty window.   That unexpected display could be the result of a typical error, where just one dot, representing a single erroneously-coded address, has been placed at latitude zero and longitude zero, a location in the ocean off the coast of Africa where the Prime Meridian and the Equator intersect.  


The display was mostly empty because it had been automatically zoomed to fit to include both a tight knot of points within Los Angeles and also a single point half a world away off the coast of Africa.  Delete that spurious dot and then when we Zoom to Fit the drawing of geocoded addresses will fill the window within the expected extents of Los Angeles.


icon_message_red.pngMessage Icons - If we double-click open a component and a red message icon appears in the window's lower tab, we should choose View - Messages from the main menu to read the message.   Blank drawings showing a message icon usually indicate lack of a spatial index, which Manifold will offer to build for us.  Blank images showing a message icon usually indicate a need to build or update indexes or intermediate levels, which Manifold will offer to do for us.


Martian meteorites -  Pieces of Mars sometimes end up on Earth when an impact on Mars blasts pieces of Mars out into space with enough force that some pieces achieve escape velocity from Mars, travel through space and then are attracted by the Earth's gravitational field to fall to Earth as meteorites. Over 130 Martian meteorites have been found.  They can be verified as pieces of Mars by the distinctive proportions of microscopic amounts of Martian atmosphere trapped within the meteorite, by isotopic ratios and other characteristics unique to Mars.    Lunar meteorites are pieces of the Moon that have been blasted off by impacts and have also made their way to Earth.


See Also

Getting Started


How to Edit a Single File




Rotated Views








Copy and Paste between Drawings








Tracker: Measurements






Editing Queries, Scripts and Comments


Layer Opacity


Project Pane


Contents Pane


Contents - Layers


Contents - Record


Keyboard and Mouse Quick Reference


Table Windows and Big Data