diff --git a/src/alias/AliasModel.java b/src/alias/AliasModel.java
index a46bd532..c8ca2aba 100644
--- a/src/alias/AliasModel.java
+++ b/src/alias/AliasModel.java
@@ -1,22 +1,28 @@
/*******************************************************************************
* SDR Trunk
* Copyright (C) 2014-2016 Dennis Sheirer
- *
+ *
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program. If not, see
******************************************************************************/
package alias;
+import alias.AliasEvent.Event;
+import alias.id.broadcast.BroadcastChannel;
+import sample.Broadcaster;
+import sample.Listener;
+
+import javax.swing.table.AbstractTableModel;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -24,195 +30,192 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
-import javax.swing.table.AbstractTableModel;
-
-import alias.id.broadcast.BroadcastChannel;
-import sample.Broadcaster;
-import sample.Listener;
-import alias.AliasEvent.Event;
-
/**
* Alias Model
*/
public class AliasModel extends AbstractTableModel
{
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
- public static final int COLUMN_LIST = 0;
- public static final int COLUMN_GROUP = 1;
- public static final int COLUMN_NAME = 2;
- public static final int COLUMN_ICON = 3;
- public static final int COLUMN_COLOR = 4;
+ public static final int COLUMN_LIST = 0;
+ public static final int COLUMN_GROUP = 1;
+ public static final int COLUMN_NAME = 2;
+ public static final int COLUMN_ICON = 3;
+ public static final int COLUMN_COLOR = 4;
- private List mAliases = new CopyOnWriteArrayList<>();
- private Broadcaster mAliasEventBroadcaster = new Broadcaster<>();
- private Map mAliasListMap = new HashMap<>();
+ private List mAliases = new CopyOnWriteArrayList<>();
+ private Broadcaster mAliasEventBroadcaster = new Broadcaster<>();
+ private Map mAliasListMap = new HashMap<>();
- public AliasModel()
- {
- }
+ public AliasModel()
+ {
+ }
- /**
- * Unmodifiable list of all aliases currently in the model
- */
- public List getAliases()
- {
- return Collections.unmodifiableList( mAliases );
- }
-
- public Alias getAliasAtIndex( int row )
- {
- if( mAliases.size() >= row )
- {
- return mAliases.get( row );
- }
-
- return null;
- }
-
- public AliasList getAliasList( String name )
- {
- if( mAliasListMap.containsKey( name ) )
- {
- return mAliasListMap.get( name );
- }
-
- AliasList aliasList = new AliasList( name );
-
- for( Alias alias: mAliases )
- {
- if( alias.getList().equalsIgnoreCase( name ) )
- {
- aliasList.addAlias( alias );
- }
- }
+ /**
+ * Unmodifiable list of all aliases currently in the model
+ */
+ public List getAliases()
+ {
+ return Collections.unmodifiableList(mAliases);
+ }
- mAliasListMap.put( name, aliasList );
+ public Alias getAliasAtIndex(int row)
+ {
+ if(mAliases.size() >= row)
+ {
+ return mAliases.get(row);
+ }
- //Register the new alias list to receive updates from this model
- addListener( aliasList );
-
- return aliasList;
- }
-
- /**
- * Returns a list of unique alias list names from across the alias set
- */
- public List getListNames()
- {
- List listNames = new ArrayList<>();
-
- for( Alias alias: mAliases )
- {
- if( alias.hasList() && !listNames.contains( alias.getList() ) )
- {
- listNames.add( alias.getList() );
- }
- }
-
- Collections.sort( listNames );
-
- return listNames;
- }
-
- /**
- * Returns a list of alias group names for all aliases
- */
- public List getGroupNames()
- {
- List groupNames = new ArrayList<>();
+ return null;
+ }
- for( Alias alias: mAliases )
- {
- if( alias.hasGroup() && !groupNames.contains( alias.getGroup() ) )
- {
- groupNames.add( alias.getGroup() );
- }
- }
+ public AliasList getAliasList(String name)
+ {
+ if(name != null && mAliasListMap.containsKey(name))
+ {
+ return mAliasListMap.get(name);
+ }
- Collections.sort( groupNames );
-
- return groupNames;
- }
+ AliasList aliasList = new AliasList(name);
- /**
- * Returns a list of alias group names for all aliases that have a matching
- * list name value
- */
- public List getGroupNames( String listName )
- {
- List groupNames = new ArrayList<>();
+ if(name != null)
+ {
+ for(Alias alias : mAliases)
+ {
+ if(alias.getList().equalsIgnoreCase(name))
+ {
+ aliasList.addAlias(alias);
+ }
+ }
- if( listName != null )
- {
- for( Alias alias: mAliases )
- {
- if( alias.hasList() &&
- alias.hasGroup() &&
- listName.equals( alias.getList() ) &&
- !groupNames.contains( alias.getGroup() ) )
- {
- groupNames.add( alias.getGroup() );
- }
- }
- }
+ mAliasListMap.put(name, aliasList);
- Collections.sort( groupNames );
-
- return groupNames;
- }
+ //Register the new alias list to receive updates from this model
+ addListener(aliasList);
+ }
- /**
- * Bulk loading of aliases
- */
- public void addAliases( List aliases )
- {
- for( Alias alias: aliases )
- {
- addAlias( alias );
- }
- }
+ return aliasList;
+ }
- /**
- * Adds the alias to the model
- */
- public int addAlias( Alias alias )
- {
- if( alias != null )
- {
- mAliases.add( alias );
+ /**
+ * Returns a list of unique alias list names from across the alias set
+ */
+ public List getListNames()
+ {
+ List listNames = new ArrayList<>();
- int index = mAliases.size() - 1;
+ for(Alias alias : mAliases)
+ {
+ if(alias.hasList() && !listNames.contains(alias.getList()))
+ {
+ listNames.add(alias.getList());
+ }
+ }
- fireTableRowsInserted( index, index );
-
- broadcast( new AliasEvent( alias, Event.ADD ) );
+ Collections.sort(listNames);
- return index;
- }
-
- return -1;
- }
-
- /**
- * Removes the channel from the model and broadcasts a channel remove event
- */
- public void removeAlias( Alias alias )
- {
- if( alias != null )
- {
- int index = mAliases.indexOf( alias );
-
- mAliases.remove( alias );
-
- fireTableRowsDeleted( index, index );
-
- broadcast( new AliasEvent( alias, Event.DELETE ) );
- }
- }
+ return listNames;
+ }
+
+ /**
+ * Returns a list of alias group names for all aliases
+ */
+ public List getGroupNames()
+ {
+ List groupNames = new ArrayList<>();
+
+ for(Alias alias : mAliases)
+ {
+ if(alias.hasGroup() && !groupNames.contains(alias.getGroup()))
+ {
+ groupNames.add(alias.getGroup());
+ }
+ }
+
+ Collections.sort(groupNames);
+
+ return groupNames;
+ }
+
+ /**
+ * Returns a list of alias group names for all aliases that have a matching
+ * list name value
+ */
+ public List getGroupNames(String listName)
+ {
+ List groupNames = new ArrayList<>();
+
+ if(listName != null)
+ {
+ for(Alias alias : mAliases)
+ {
+ if(alias.hasList() &&
+ alias.hasGroup() &&
+ listName.equals(alias.getList()) &&
+ !groupNames.contains(alias.getGroup()))
+ {
+ groupNames.add(alias.getGroup());
+ }
+ }
+ }
+
+ Collections.sort(groupNames);
+
+ return groupNames;
+ }
+
+ /**
+ * Bulk loading of aliases
+ */
+ public void addAliases(List aliases)
+ {
+ for(Alias alias : aliases)
+ {
+ addAlias(alias);
+ }
+ }
+
+ /**
+ * Adds the alias to the model
+ */
+ public int addAlias(Alias alias)
+ {
+ if(alias != null)
+ {
+ mAliases.add(alias);
+
+ int index = mAliases.size() - 1;
+
+ fireTableRowsInserted(index, index);
+
+ broadcast(new AliasEvent(alias, Event.ADD));
+
+ return index;
+ }
+
+ return -1;
+ }
+
+ /**
+ * Removes the channel from the model and broadcasts a channel remove event
+ */
+ public void removeAlias(Alias alias)
+ {
+ if(alias != null)
+ {
+ int index = mAliases.indexOf(alias);
+
+ mAliases.remove(alias);
+
+ fireTableRowsDeleted(index, index);
+
+ broadcast(new AliasEvent(alias, Event.DELETE));
+ }
+ }
/**
* Renames any broadcast channels that have the previous name.
+ *
* @param previousName to rename
* @param newName to assign to the broadcast channel
*/
@@ -223,11 +226,11 @@ public class AliasModel extends AbstractTableModel
return;
}
- for(Alias alias: mAliases)
+ for(Alias alias : mAliases)
{
if(alias.hasBroadcastChannel(previousName))
{
- for(BroadcastChannel broadcastChannel: alias.getBroadcastChannels())
+ for(BroadcastChannel broadcastChannel : alias.getBroadcastChannels())
{
if(broadcastChannel.getChannelName().contentEquals(previousName))
{
@@ -238,85 +241,85 @@ public class AliasModel extends AbstractTableModel
}
}
- @Override
- public int getRowCount()
- {
- return mAliases.size();
- }
+ @Override
+ public int getRowCount()
+ {
+ return mAliases.size();
+ }
- @Override
- public int getColumnCount()
- {
- return 5;
- }
+ @Override
+ public int getColumnCount()
+ {
+ return 5;
+ }
- @Override
- public String getColumnName( int columnIndex )
- {
- switch( columnIndex )
- {
- case COLUMN_LIST:
- return "List";
- case COLUMN_GROUP:
- return "Group";
- case COLUMN_NAME:
- return "Name";
- case COLUMN_ICON:
- return "Icon";
- case COLUMN_COLOR:
- return "Color";
- }
-
- return null;
- }
+ @Override
+ public String getColumnName(int columnIndex)
+ {
+ switch(columnIndex)
+ {
+ case COLUMN_LIST:
+ return "List";
+ case COLUMN_GROUP:
+ return "Group";
+ case COLUMN_NAME:
+ return "Name";
+ case COLUMN_ICON:
+ return "Icon";
+ case COLUMN_COLOR:
+ return "Color";
+ }
- @Override
- public Class> getColumnClass( int columnIndex )
- {
- if( columnIndex == COLUMN_COLOR )
- {
- return Integer.class;
- }
-
- return String.class;
- }
+ return null;
+ }
- @Override
- public boolean isCellEditable( int rowIndex, int columnIndex )
- {
- return false;
- }
+ @Override
+ public Class> getColumnClass(int columnIndex)
+ {
+ if(columnIndex == COLUMN_COLOR)
+ {
+ return Integer.class;
+ }
- @Override
- public Object getValueAt( int rowIndex, int columnIndex )
- {
- Alias alias = mAliases.get( rowIndex );
-
- switch( columnIndex )
- {
- case COLUMN_LIST:
- return alias.getList();
- case COLUMN_GROUP:
- return alias.getGroup();
- case COLUMN_NAME:
- return alias.getName();
- case COLUMN_ICON:
- return alias.getIconName();
- case COLUMN_COLOR:
- return alias.getColor();
- }
-
- return null;
- }
+ return String.class;
+ }
- @Override
- public void setValueAt( Object aValue, int rowIndex, int columnIndex )
- {
- throw new IllegalArgumentException( "Not yet implemented" );
- }
-
- public void broadcast( AliasEvent event )
- {
+ @Override
+ public boolean isCellEditable(int rowIndex, int columnIndex)
+ {
+ return false;
+ }
+
+ @Override
+ public Object getValueAt(int rowIndex, int columnIndex)
+ {
+ Alias alias = mAliases.get(rowIndex);
+
+ switch(columnIndex)
+ {
+ case COLUMN_LIST:
+ return alias.getList();
+ case COLUMN_GROUP:
+ return alias.getGroup();
+ case COLUMN_NAME:
+ return alias.getName();
+ case COLUMN_ICON:
+ return alias.getIconName();
+ case COLUMN_COLOR:
+ return alias.getColor();
+ }
+
+ return null;
+ }
+
+ @Override
+ public void setValueAt(Object aValue, int rowIndex, int columnIndex)
+ {
+ throw new IllegalArgumentException("Not yet implemented");
+ }
+
+ public void broadcast(AliasEvent event)
+ {
Alias alias = event.getAlias();
//Validate the alias following a user action that changed the alias or any alias IDs
@@ -325,23 +328,23 @@ public class AliasModel extends AbstractTableModel
alias.validate();
}
- if( event.getEvent() == Event.CHANGE )
- {
- int index = mAliases.indexOf( event.getAlias() );
-
- fireTableRowsUpdated( index, index );
- }
-
- mAliasEventBroadcaster.broadcast( event );
- }
-
- public void addListener( Listener listener )
- {
- mAliasEventBroadcaster.addListener( listener );
- }
-
- public void removeListener( Listener listener )
- {
- mAliasEventBroadcaster.removeListener( listener );
- }
+ if(event.getEvent() == Event.CHANGE)
+ {
+ int index = mAliases.indexOf(event.getAlias());
+
+ fireTableRowsUpdated(index, index);
+ }
+
+ mAliasEventBroadcaster.broadcast(event);
+ }
+
+ public void addListener(Listener listener)
+ {
+ mAliasEventBroadcaster.addListener(listener);
+ }
+
+ public void removeListener(Listener listener)
+ {
+ mAliasEventBroadcaster.removeListener(listener);
+ }
}