Index: AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTable.java
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTable.java	(revision 651)
+++ AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTable.java	(revision 657)
@@ -19,4 +19,5 @@
 import javax.swing.JComponent;
 import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
 import javax.swing.JPopupMenu;
 import javax.swing.JTable;
@@ -42,8 +43,28 @@
 			.getBundle("net.oni2.aeinstaller.localization.ModTable");
 
+	/**
+	 * @author Christian Illy
+	 */
+	public enum ETableContentType {
+		/**
+		 * Table showing mods
+		 */
+		MODS,
+		/**
+		 * Table showing tools
+		 */
+		TOOLS,
+		/**
+		 * Table showing core packages
+		 */
+		CORE
+	};
+
 	private HashSet<ModSelectionListener> modSelListeners = new HashSet<ModSelectionListener>();
 
 	private ModTableModel model;
 	private TableRowSorter<ModTableModel> sorter;
+
+	private ETableContentType contentType = ETableContentType.MODS;
 
 	/**
@@ -186,5 +207,6 @@
 	 */
 	public void setFilter(Type type, int downloadState) {
-		sorter.setRowFilter(new ModTableFilter(type, downloadState));
+		sorter.setRowFilter(new ModTableFilter(type, downloadState,
+				contentType == ETableContentType.CORE, false));
 	}
 
@@ -203,4 +225,27 @@
 			}
 		}
+	}
+
+	/**
+	 * Select/Unselect all currently visible items depending on the current
+	 * state of selection
+	 */
+	public void unSelectAll() {
+		boolean isAll = true;
+		for (int i = 0; i < getRowCount(); i++) {
+			int modRow = convertRowIndexToModel(i);
+			boolean inst = (Boolean) model.getValueAt(modRow, 0);
+			if (!inst) {
+				isAll = false;
+				break;
+			}
+		}
+
+		for (int i = 0; i < getRowCount(); i++) {
+			int modRow = convertRowIndexToModel(i);
+			model.setValueAt(!isAll, modRow, 0);
+		}
+		invalidate();
+		repaint();
 	}
 
@@ -267,4 +312,36 @@
 					}
 
+					if (mod.isLocalAvailable()
+							&& contentType != ETableContentType.CORE) {
+						// Delete package folder item
+						JMenuItem deleteModFolder = new JMenuItem(
+								bundle.getString("deletePackage.text"));
+						deleteModFolder.addActionListener(new ActionListener() {
+							@Override
+							public void actionPerformed(ActionEvent arg0) {
+								if (mod.getNode() == null) {
+									JOptionPane.showMessageDialog(
+											null,
+											bundle.getString("deletePackageLocalOnly.text"),
+											bundle.getString("deletePackageLocalOnly.title"),
+											JOptionPane.INFORMATION_MESSAGE);
+								} else {
+									int res = JOptionPane.showConfirmDialog(
+											null,
+											bundle.getString("deletePackageConfirm.text"),
+											bundle.getString("deletePackageConfirm.title"),
+											JOptionPane.YES_NO_OPTION,
+											JOptionPane.WARNING_MESSAGE);
+									if (res == JOptionPane.YES_OPTION) {
+										mod.deleteLocalPackage();
+										invalidate();
+										repaint();
+									}
+								}
+							}
+						});
+						popup.add(deleteModFolder);
+					}
+
 					if (popup.getSubElements().length > 0)
 						popup.show(e.getComponent(), e.getX(), e.getY());
Index: AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableFilter.java
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableFilter.java	(revision 651)
+++ AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableFilter.java	(revision 657)
@@ -13,4 +13,7 @@
 	private int downloadState = 0;
 
+	private boolean showCorePackages = false;
+	private boolean showInvalidPlatform = false;
+
 	/**
 	 * @param type
@@ -18,9 +21,16 @@
 	 * @param downloadState
 	 *            Show only: 0 = all, 1 = online, 2 = downloaded
+	 * @param showCorePackages
+	 *            Show core packages in table
+	 * @param showInvalidPlatform
+	 *            Show packages not valid on this platform
 	 */
-	public ModTableFilter(Type type, int downloadState) {
+	public ModTableFilter(Type type, int downloadState,
+			boolean showCorePackages, boolean showInvalidPlatform) {
 		super();
 		this.type = type;
 		this.downloadState = downloadState;
+		this.showCorePackages = showCorePackages;
+		this.showInvalidPlatform = showInvalidPlatform;
 	}
 
@@ -28,10 +38,11 @@
 	public boolean include(
 			RowFilter.Entry<? extends ModTableModel, ? extends Integer> entry) {
-		Package mod = (Package) entry.getModel().getValueAt(entry.getIdentifier(), -1);
-		
-		if (mod.isCorePackage())
+		Package mod = (Package) entry.getModel().getValueAt(
+				entry.getIdentifier(), -1);
+
+		if (mod.isCorePackage() && !showCorePackages)
 			return false;
 
-		if (!mod.isValidOnPlatform())
+		if (!mod.isValidOnPlatform() && !showInvalidPlatform)
 			return false;
 
@@ -47,5 +58,5 @@
 				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 651)
+++ AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableModel.java	(revision 657)
@@ -60,4 +60,10 @@
 				return res;
 			case 5:
+				if (mod.getNode() != null)
+					return sdf.format(new Date(
+							mod.getNode().getCreated() * 1000));
+				else
+					return null;
+			case 6:
 				if (mod.getFile() != null)
 					return sdf.format(new Date(
@@ -83,4 +89,6 @@
 				return bundle.getString("mod.state");
 			case 5:
+				return bundle.getString("mod.added");
+			case 6:
 				return bundle.getString("mod.date");
 		}
@@ -95,5 +103,5 @@
 	@Override
 	public int getColumnCount() {
-		return 6;
+		return 7;
 	}
 
@@ -112,4 +120,6 @@
 				return String.class;
 			case 5:
+				return String.class;
+			case 6:
 				return String.class;
 		}
@@ -153,5 +163,11 @@
 				break;
 			case 5:
-				w = 115;
+				w = 100;
+				col.setPreferredWidth(w);
+				col.setMinWidth(w);
+				col.setMaxWidth(w);
+				break;
+			case 6:
+				w = 100;
 				col.setPreferredWidth(w);
 				col.setMinWidth(w);
