Index: AE/installer2/src/net/oni2/aeinstaller/AEInstaller.properties
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/AEInstaller.properties	(revision 629)
+++ AE/installer2/src/net/oni2/aeinstaller/AEInstaller.properties	(revision 630)
@@ -1,2 +1,2 @@
 appname=AE Installer 2
-appversion=0.88
+appversion=0.89
Index: AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java	(revision 629)
+++ AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java	(revision 630)
@@ -36,4 +36,5 @@
 import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
+import javax.swing.JRadioButton;
 import javax.swing.JSplitPane;
 import javax.swing.JTable;
@@ -99,4 +100,7 @@
 
 	private JComboBox cmbModTypes;
+	private JRadioButton radAll;
+	private JRadioButton radOnline;
+	private JRadioButton radLocal;
 	private JTable tblMods;
 	private ModTableModel model;
@@ -139,4 +143,5 @@
 		getRootPane().setDefaultButton(btnInstall);
 		lblDownloadSizeVal.setText(SizeFormatter.format(0, 2));
+		radAll.setSelected(true);
 	}
 
@@ -148,4 +153,5 @@
 			types.put(t.getName(), t);
 		}
+		cmbModTypes.addItem("-All-");
 		for (Type t : types.values()) {
 			cmbModTypes.addItem(t);
@@ -232,5 +238,5 @@
 		tblMods.setRowSorter(sorter);
 
-		sorter.setRowFilter(new ModTableFilter(null));
+		sorter.setRowFilter(new ModTableFilter(null, 0));
 
 		List<RowSorter.SortKey> sortKeys = new ArrayList<RowSorter.SortKey>();
@@ -662,11 +668,25 @@
 	}
 
+	private void updateTableFilter() {
+		Object o = cmbModTypes.getSelectedItem();
+		Type t = null;
+		if (o instanceof Type)
+			t = (Type) o;
+		int downloadState = 0;
+		if (radOnline.isSelected())
+			downloadState = 1;
+		if (radLocal.isSelected())
+			downloadState = 2;
+		sorter.setRowFilter(new ModTableFilter(t, downloadState));
+	}
+
 	@SuppressWarnings("unused")
 	private void modTypeSelection() {
-		Type t = (Type) cmbModTypes.getSelectedItem();
-		if (t != null)
-			sorter.setRowFilter(new ModTableFilter(t));
-		else
-			sorter.setRowFilter(new ModTableFilter(null));
+		updateTableFilter();
+	}
+
+	@SuppressWarnings("unused")
+	private void showTypeSelection() {
+		updateTableFilter();
 	}
 
Index: AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.yml
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.yml	(revision 629)
+++ AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.yml	(revision 630)
@@ -50,4 +50,9 @@
             - JLabel(name=lblModTypes, text=lblModTypes.text)
             - JComboBox(name=cmbModTypes, onAction=modTypeSelection)
+            - JLabel(name=lblShowOnly, text=lblShowOnly.text)
+            - JRadioButton(name=radAll, text=radAll.text, onAction=showTypeSelection)
+            - JRadioButton(name=radOnline, text=radOnline.text, onAction=showTypeSelection)
+            - JRadioButton(name=radLocal, text=radLocal.text, onAction=showTypeSelection)
+            - ButtonGroup: [radAll,radOnline,radLocal]
             - JScrollPane(name=scrollMods, vScrollBar=always, hScrollBar=never):
                 JTable(name=tblMods, visible=false)
@@ -58,8 +63,9 @@
             - MigLayout: |
                  [grow]
-                 lblModTypes<,cmbModTypes           [min]
-                 scrollMods                         [grow]
-                 >btnRevertSelection,btnInstall     [min]
-                 lblDownloadSize,lblDownloadSizeVal [min]
+                 lblModTypes<,cmbModTypes               [min]
+                 lblShowOnly<,radAll,radOnline,radLocal [min]
+                 scrollMods                             [grow]
+                 >btnRevertSelection,btnInstall         [min]
+                 lblDownloadSize,lblDownloadSizeVal     [min]
         - JPanel(name=panInfo):
             - JLabel(name=lblSubmitter, text=lblSubmitter.text)
Index: AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableFilter.java
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableFilter.java	(revision 629)
+++ AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableFilter.java	(revision 630)
@@ -11,12 +11,16 @@
 public class ModTableFilter extends RowFilter<ModTableModel, Integer> {
 	Type type = null;
+	int downloadState = 0;
 
 	/**
 	 * @param type
 	 *            Type of mods to show (null for all)
+	 * @param downloadState
+	 *            Show only: 0 = all, 1 = online, 2 = downloaded
 	 */
-	public ModTableFilter(Type type) {
+	public ModTableFilter(Type type, int downloadState) {
 		super();
 		this.type = type;
+		this.downloadState = downloadState;
 	}
 
@@ -25,5 +29,5 @@
 			RowFilter.Entry<? extends ModTableModel, ? extends Integer> entry) {
 		Mod mod = (Mod) entry.getModel().getValueAt(entry.getIdentifier(), -1);
-
+		
 		if (mod.isMandatoryMod())
 			return false;
@@ -32,8 +36,17 @@
 			return false;
 
-		if (type == null)
-			return true;
-
-		return mod.getTypes().contains(type);
+		boolean result = true;
+		if (type != null)
+			result &= mod.getTypes().contains(type);
+		switch (downloadState) {
+			case 1:
+				result &= !mod.isLocalAvailable();
+				break;
+			case 2:
+				result &= mod.isLocalAvailable();
+				break;
+		}
+		
+		return result;
 	}
 }
Index: AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableModel.java
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableModel.java	(revision 629)
+++ AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableModel.java	(revision 630)
@@ -48,4 +48,6 @@
 			case 2:
 				return mod.getPackageNumberString();
+			case 3:
+				return mod.getCreator();
 		}
 		return null;
@@ -61,4 +63,6 @@
 			case 2:
 				return bundle.getString("mod.package_number");
+			case 3:
+				return bundle.getString("mod.creator");
 		}
 		return null;
@@ -72,5 +76,5 @@
 	@Override
 	public int getColumnCount() {
-		return 3;
+		return 4;
 	}
 
@@ -83,4 +87,6 @@
 				return String.class;
 			case 2:
+				return String.class;
+			case 3:
 				return String.class;
 		}
@@ -100,5 +106,5 @@
 		switch (colNum) {
 			case 0:
-				w = 50;
+				w = 60;
 				col.setPreferredWidth(w);
 				col.setMinWidth(w);
@@ -113,4 +119,7 @@
 				col.setMinWidth(w);
 				col.setMaxWidth(w);
+				break;
+			case 3:
+				col.setPreferredWidth(90);
 				break;
 		}
Index: AE/installer2/src/net/oni2/aeinstaller/localization/MainWin.properties
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/localization/MainWin.properties	(revision 629)
+++ AE/installer2/src/net/oni2/aeinstaller/localization/MainWin.properties	(revision 630)
@@ -36,4 +36,8 @@
 btnInstall.tooltip=Install selected mods
 lblModTypes.text=Mod type: 
+lblShowOnly.text=Show only:
+radAll.text=All
+radOnline.text=Online
+radLocal.text=Downloaded
 lblDownloadSize.text=Size of files to download: 
 
Index: AE/installer2/src/net/oni2/aeinstaller/localization/ModTableModel.properties
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/localization/ModTableModel.properties	(revision 629)
+++ AE/installer2/src/net/oni2/aeinstaller/localization/ModTableModel.properties	(revision 630)
@@ -2,2 +2,3 @@
 mod.package_number=Pkg#
 mod.install=Install
+mod.creator=Creator
