void addAlternative(){
        String new_name = (String)JOptionPane.showInputDialog(
                this,
                "Alternative name:",
                "Add New Alternative",
                JOptionPane.PLAIN_MESSAGE,
                null,
                null,
                "Alt(" + counter + ")");
        if ((new_name != null) && (new_name.length() > 0)) {
	        //adding to data to update the current model
	    	Vector data = new Vector();
	        data.addElement(new_name);	 
	        for (int i=0; i<objs.size(); i++){
	        		JObjective obj = (JObjective)objs.get(i);
	        		if (obj.getType()==JObjective.DISCRETE){
	        			data.addElement("");
	        		}
	        		else
	        			data.addElement("");
	        }
	        rows.add(data);
	        tabModel.fireTableRowsInserted(rows.size(), rows.size());   
   
	        //adding to hashmap to update main model
	        HashMap datamap = new HashMap();
	        datamap.put("name", new_name);
	        
	        //add new blank field for all objs
	        for (int i=0; i<all_objs.size(); i++){
        		JObjective obj = (JObjective)all_objs.get(i);
        		if (!obj.getName().equals("name")){
	        		if (obj.getType()==JObjective.DISCRETE){
	        			datamap.put(obj.getName(), "");
	        		}
	        		else
	        			datamap.put(obj.getName(), Double.valueOf(obj.minC));
        		}
	        	
	        }
	        alts.add(datamap);
	        counter++;     	
	        num_alts++;
	        checkAlternativeCount();
        }	        
    }