From: <jan...@us...> - 2006-11-30 20:29:34
|
Revision: 488 http://svn.sourceforge.net/magicmap/?rev=488&view=rev Author: jan_fride Date: 2006-11-30 12:29:03 -0800 (Thu, 30 Nov 2006) Log Message: ----------- missing classes Modified Paths: -------------- trunk/magicmapclient/res/log4j.xml Added Paths: ----------- trunk/magicmapclient/res/log4j.dtd trunk/magicmapclient/src/net/sf/magicmap/plugin/ui/PluginTableModel.java Added: trunk/magicmapclient/res/log4j.dtd =================================================================== --- trunk/magicmapclient/res/log4j.dtd (rev 0) +++ trunk/magicmapclient/res/log4j.dtd 2006-11-30 20:29:03 UTC (rev 488) @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<!-- Authors: Chris Taylor, Ceki Gulcu. --> + +<!-- Version: 1.2 --> + +<!-- A configuration element consists of optional renderer +elements,appender elements, categories and an optional root +element. --> + +<!ELEMENT log4j:configuration (renderer*, appender*,(category|logger)*,root?, + categoryFactory?)> + +<!-- The "threshold" attribute takes a level value such that all --> +<!-- logging statements with a level equal or below this value are --> +<!-- disabled. --> + +<!-- Setting the "debug" enable the printing of internal log4j logging --> +<!-- statements. --> + +<!-- By default, debug attribute is "null", meaning that we not do touch --> +<!-- internal log4j logging settings. The "null" value for the threshold --> +<!-- attribute can be misleading. The threshold field of a repository --> +<!-- cannot be set to null. The "null" value for the threshold attribute --> +<!-- simply means don't touch the threshold field, the threshold field --> +<!-- keeps its old value. --> + +<!ATTLIST log4j:configuration + xmlns:log4j CDATA #FIXED "http://jakarta.apache.org/log4j/" + threshold (all|debug|info|warn|error|fatal|off|null) "null" + debug (true|false|null) "null" +> + +<!-- renderer elements allow the user to customize the conversion of --> +<!-- message objects to String. --> + +<!ELEMENT renderer EMPTY> +<!ATTLIST renderer + renderedClass CDATA #REQUIRED + renderingClass CDATA #REQUIRED +> + +<!-- Appenders must have a name and a class. --> +<!-- Appenders may contain an error handler, a layout, optional parameters --> +<!-- and filters. They may also reference (or include) other appenders. --> +<!ELEMENT appender (errorHandler?, param*, layout?, filter*, appender-ref*)> +<!ATTLIST appender + name ID #REQUIRED + class CDATA #REQUIRED +> + +<!ELEMENT layout (param*)> +<!ATTLIST layout + class CDATA #REQUIRED +> + +<!ELEMENT filter (param*)> +<!ATTLIST filter + class CDATA #REQUIRED +> + +<!-- ErrorHandlers can be of any class. They can admit any number of --> +<!-- parameters. --> + +<!ELEMENT errorHandler (param*, root-ref?, logger-ref*, appender-ref?)> +<!ATTLIST errorHandler + class CDATA #REQUIRED +> + +<!ELEMENT root-ref EMPTY> + +<!ELEMENT logger-ref EMPTY> +<!ATTLIST logger-ref + ref IDREF #REQUIRED +> + +<!ELEMENT param EMPTY> +<!ATTLIST param + name CDATA #REQUIRED + value CDATA #REQUIRED +> + + +<!-- The priority class is org.apache.log4j.Level by default --> +<!ELEMENT priority (param*)> +<!ATTLIST priority + class CDATA #IMPLIED + value CDATA #REQUIRED +> + +<!-- The level class is org.apache.log4j.Level by default --> +<!ELEMENT level (param*)> +<!ATTLIST level + class CDATA #IMPLIED + value CDATA #REQUIRED +> + + +<!-- If no level element is specified, then the configurator MUST not --> +<!-- touch the level of the named category. --> +<!ELEMENT category (param*,(priority|level)?,appender-ref*)> +<!ATTLIST category + class CDATA #IMPLIED + name CDATA #REQUIRED + additivity (true|false) "true" +> + +<!-- If no level element is specified, then the configurator MUST not --> +<!-- touch the level of the named logger. --> +<!ELEMENT logger (level?,appender-ref*)> +<!ATTLIST logger + name ID #REQUIRED + additivity (true|false) "true" +> + + +<!ELEMENT categoryFactory (param*)> +<!ATTLIST categoryFactory + class CDATA #REQUIRED> + +<!ELEMENT appender-ref EMPTY> +<!ATTLIST appender-ref + ref IDREF #REQUIRED +> + +<!-- If no priority element is specified, then the configurator MUST not --> +<!-- touch the priority of root. --> +<!-- The root category always exists and cannot be subclassed. --> +<!ELEMENT root (param*, (priority|level)?, appender-ref*)> + + +<!-- ==================================================================== --> +<!-- A logging event --> +<!-- ==================================================================== --> +<!ELEMENT log4j:eventSet (log4j:event*)> +<!ATTLIST log4j:eventSet + xmlns:log4j CDATA #FIXED "http://jakarta.apache.org/log4j/" + version (1.1|1.2) "1.2" + includesLocationInfo (true|false) "true" +> + + + +<!ELEMENT log4j:event (log4j:message, log4j:NDC?, log4j:throwable?, + log4j:locationInfo?) > + +<!-- The timestamp format is application dependent. --> +<!ATTLIST log4j:event + logger CDATA #REQUIRED + level CDATA #REQUIRED + thread CDATA #REQUIRED + timestamp CDATA #REQUIRED +> + +<!ELEMENT log4j:message (#PCDATA)> +<!ELEMENT log4j:NDC (#PCDATA)> + +<!ELEMENT log4j:throwable (#PCDATA)> + +<!ELEMENT log4j:locationInfo EMPTY> +<!ATTLIST log4j:locationInfo + class CDATA #REQUIRED + method CDATA #REQUIRED + file CDATA #REQUIRED + line CDATA #REQUIRED +> Modified: trunk/magicmapclient/res/log4j.xml =================================================================== --- trunk/magicmapclient/res/log4j.xml 2006-11-30 20:24:22 UTC (rev 487) +++ trunk/magicmapclient/res/log4j.xml 2006-11-30 20:29:03 UTC (rev 488) @@ -3,27 +3,25 @@ <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> - <appender name="MeinAppender" class="org.apache.log4j.FileAppender"> - <param name="file" value="magicmapclient.log" /> - <param name="Append" value="true" /> - <layout class="org.apache.log4j.PatternLayout"> - <param name="ConversionPattern" - value="%d{ISO8601} %-5p [%t] %c: %m%n" /> - </layout> - </appender> -<appender name="MeinAppender2" class="org.apache.log4j.ConsoleAppender"> - - <layout class="org.apache.log4j.PatternLayout"> - <param name="ConversionPattern" - value="%d{ISO8601} %-5p %c: %m%n" /> - </layout> - </appender> + <appender name="MeinAppender" class="org.apache.log4j.FileAppender"> + <param name="file" value="magicmapclient.log" /> + <param name="Append" value="true" /> + <layout class="org.apache.log4j.PatternLayout"> + <param name="ConversionPattern" + value="%d{ISO8601} %-5p [%t] %c: %m%n" /> + </layout> + </appender> + <appender name="MeinAppender2" class="org.apache.log4j.ConsoleAppender"> + <layout class="org.apache.log4j.PatternLayout"> + <param name="ConversionPattern" + value="%d{ISO8601} %-5p %c: %m%n" /> + </layout> + </appender> - <root> - <priority value="INFO" /> - <appender-ref ref="MeinAppender" /> - <appender-ref ref="MeinAppender2" /> - </root> - + <root> + <priority value="INFO" /> + <appender-ref ref="MeinAppender" /> + <appender-ref ref="MeinAppender2" /> + </root> </log4j:configuration> Added: trunk/magicmapclient/src/net/sf/magicmap/plugin/ui/PluginTableModel.java =================================================================== --- trunk/magicmapclient/src/net/sf/magicmap/plugin/ui/PluginTableModel.java (rev 0) +++ trunk/magicmapclient/src/net/sf/magicmap/plugin/ui/PluginTableModel.java 2006-11-30 20:29:03 UTC (rev 488) @@ -0,0 +1,118 @@ + +package net.sf.magicmap.plugin.ui; + +import java.beans.PropertyChangeSupport; +import java.util.Collections; +import java.util.LinkedList; + +import javax.swing.event.TableModelEvent; +import javax.swing.event.TableModelListener; + +import net.sf.magicmap.client.gui.ISortableTableModel; +import net.sf.magicmap.plugin.IPlugin; +import net.sf.magicmap.plugin.PluginManager; +import net.sf.magicmap.plugin.util.PluginComparator; +import net.sf.magicmap.artifact.ArtifactComparator; + +/** + * The list of all installed plugins. + * @author Jan + * + */ +public class PluginTableModel implements ISortableTableModel { + + private final PropertyChangeSupport support; + private final LinkedList<TableModelListener> listener = new LinkedList<TableModelListener>(); + private final LinkedList<IPlugin> plugins = new LinkedList<IPlugin>(); + + private static final Class[] clazzes = new Class[]{String.class, String.class, String.class, + Boolean.class }; + private final String[] names = new String[]{"Gruppe", "Plugin", "Version", "Aktiv"}; + private boolean descending; + private int sortColumn; + + public PluginTableModel(PluginManager manager) { + this.support = new PropertyChangeSupport(this); +// for (IPlugin plugin : manager) +// this.plugins.add(plugin); + } + + public void addTableModelListener(TableModelListener l){ + this.listener.add(l); + + } + + public Class<?> getColumnClass(int columnIndex){ + return PluginTableModel.clazzes[columnIndex]; + } + + public int getColumnCount(){ + return PluginTableModel.clazzes.length; + } + + public String getColumnName(int columnIndex){ + return this.names[columnIndex]; + } + + public int getRowCount(){ + return this.plugins.size(); + } + + public void sortByComlumn(int column, boolean descending){ + this.sortColumn = column; + this.descending = descending; + + Collections.sort(this.plugins, new ArtifactComparator()); //(new int[]{column}, descending)); + + TableModelEvent e = new TableModelEvent(this); + for (TableModelListener l : this.listener) + l.tableChanged(e); + System.err.println(column); + } + + public Object getValueAt(int rowIndex, int columnIndex){ + if (rowIndex > this.plugins.size()) throw new IllegalArgumentException("Invalid Row: " + rowIndex); + IPlugin plugin = this.plugins.get(rowIndex); + switch (columnIndex) { + case 0 : + return plugin.getGroupId(); + case 1 : + return plugin.getPluginInfos().getName(); + case 2 : + return plugin.getVersion(); + case 3 : + return true; + default : + throw new IllegalArgumentException("Invalid col: " + columnIndex); + } + + } + + /** + * @return false + */ + public boolean isCellEditable(int rowIndex, int columnIndex){ + return false; + } + + public void removeTableModelListener(TableModelListener l){ + this.listener.remove(l); + } + + /** + * Does nothing! + */ + public void setValueAt(Object aValue, int rowIndex, int columnIndex){ + // TODO Auto-generated method stub + + } + + public int getSortColumn(){ + return this.sortColumn; + } + + public boolean isDecending(){ + return this.descending; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |