diff --git a/src/sview/block_info.c b/src/sview/block_info.c
index 9b92847fc3bbf5c663da2cd2183dc5db40eb9b96..b14ea447f5e3e2533f3ab38bdabb9d08ef0c3f8a 100644
--- a/src/sview/block_info.c
+++ b/src/sview/block_info.c
@@ -72,42 +72,42 @@ enum {
 };
 
 static display_data_t display_data_block[] = {
-	{G_TYPE_INT, SORTID_POS, NULL, FALSE, -1, refresh_block,
+	{G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE, refresh_block,
 	 create_model_block, admin_edit_block},
 	{G_TYPE_STRING, SORTID_BLOCK, "Bluegene Block", 
-	 TRUE, -1, refresh_block,
+	 TRUE, EDIT_NONE, refresh_block,
 	 create_model_block, admin_edit_block},
-	{G_TYPE_STRING, SORTID_STATE, "State", TRUE, 0, refresh_block,
+	{G_TYPE_STRING, SORTID_STATE, "State", TRUE, EDIT_MODEL, refresh_block,
 	 create_model_block, admin_edit_block},
-	{G_TYPE_STRING, SORTID_USER, "User", TRUE, -1, refresh_block,
+	{G_TYPE_STRING, SORTID_USER, "User", TRUE, EDIT_NONE, refresh_block,
 	 create_model_block, admin_edit_block},
-	{G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, -1, refresh_block,
+	{G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, EDIT_NONE, refresh_block,
 	 create_model_block, admin_edit_block},
 	{G_TYPE_STRING, SORTID_CONN, "Connection Type", 
-	 TRUE, -1, refresh_block,
+	 TRUE, EDIT_NONE, refresh_block,
 	 create_model_block, admin_edit_block},
-	{G_TYPE_STRING, SORTID_USE, "Node Use", TRUE, -1, refresh_block,
+	{G_TYPE_STRING, SORTID_USE, "Node Use", TRUE, EDIT_NONE, refresh_block,
 	 create_model_block, admin_edit_block},
-	{G_TYPE_STRING, SORTID_NODELIST, "BP List", TRUE, -1, refresh_block,
+	{G_TYPE_STRING, SORTID_NODELIST, "BP List", TRUE, EDIT_NONE, refresh_block,
 	 create_model_block, admin_edit_block},
 	{G_TYPE_STRING, SORTID_PARTITION, "Partition", 
-	 TRUE, -1, refresh_block,
+	 TRUE, EDIT_NONE, refresh_block,
 	 create_model_block, admin_edit_block},
 	{G_TYPE_STRING, SORTID_BLRTSIMAGE, "Blrts Image",
-	 FALSE, -1, refresh_block, create_model_block, admin_edit_block},
+	 FALSE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block},
 	{G_TYPE_STRING, SORTID_LINUXIMAGE, "linux Image",
-	 FALSE, -1, refresh_block, create_model_block, admin_edit_block},
+	 FALSE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block},
 	{G_TYPE_STRING, SORTID_MLOADERIMAGE, "Mloader Image",
-	 FALSE, -1, refresh_block, create_model_block, admin_edit_block},
+	 FALSE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block},
 	{G_TYPE_STRING, SORTID_RAMDISKIMAGE, "Ramdisk Image",
-	 FALSE, -1, refresh_block, create_model_block, admin_edit_block},
-	{G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, -1, refresh_block,
+	 FALSE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block},
+	{G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, EDIT_NONE, refresh_block,
 	 create_model_block, admin_edit_block},
-	{G_TYPE_NONE, -1, NULL, FALSE, -1}
+	{G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE}
 };
 
 static display_data_t options_data_block[] = {
-	{G_TYPE_INT, SORTID_POS, NULL, FALSE, -1},
+	{G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE},
 	{G_TYPE_STRING, INFO_PAGE, "Full Info", TRUE, BLOCK_PAGE},
 	{G_TYPE_STRING, BLOCK_PAGE, "Put block in error state",
 	 TRUE, ADMIN_PAGE},
@@ -117,7 +117,7 @@ static display_data_t options_data_block[] = {
 	{G_TYPE_STRING, PART_PAGE, "Partition", TRUE, BLOCK_PAGE},
 	{G_TYPE_STRING, NODE_PAGE, "Base Partitions", TRUE, BLOCK_PAGE},
 	{G_TYPE_STRING, SUBMIT_PAGE, "Job Submit", FALSE, BLOCK_PAGE},
-	{G_TYPE_NONE, -1, NULL, FALSE, -1}
+	{G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE}
 };
 
 static display_data_t *local_display_data = NULL;
diff --git a/src/sview/common.c b/src/sview/common.c
index 772dcce5964e7a26ecac0ff1416b4f5b05170233..943842a4fc25cba99cb76c3bb632287ab6f5cc4f 100644
--- a/src/sview/common.c
+++ b/src/sview/common.c
@@ -155,7 +155,7 @@ static void _add_col_to_treeview(GtkTreeView *tree_view,
 	GtkTreeViewColumn *col = gtk_tree_view_column_new();
 	GtkListStore *model = (display_data->create_model)(display_data->id);
 	GtkCellRenderer *renderer = NULL;
-	if(model && display_data->extra != -1) {
+	if(model && display_data->extra != EDIT_NONE) {
 		renderer = gtk_cell_renderer_combo_new();
 		g_object_set(renderer,
 			     "model", model,
@@ -163,7 +163,7 @@ static void _add_col_to_treeview(GtkTreeView *tree_view,
 			     "has-entry", display_data->extra,
 			     "editable", TRUE,
 			     NULL);
-	} else if(display_data->extra == 1) {
+	} else if(display_data->extra == EDIT_TEXTBOX) {
 		renderer = gtk_cell_renderer_text_new();
 		g_object_set(renderer,
 			     "editable", TRUE,
diff --git a/src/sview/job_info.c b/src/sview/job_info.c
index d8ec40d99ef8e1959f14a348e0f724dbdf6db1f9..a91cef4800124e4e3b69f77e58e8d3672fa7e571 100644
--- a/src/sview/job_info.c
+++ b/src/sview/job_info.c
@@ -143,154 +143,159 @@ enum {
 	SORTID_CNT
 };
 
+/* extra field here is for choosing the type of edit you that will
+ * take place.  If you choose EDIT_MODEL (means only display a set of
+ * known options) create it in function create_model_*.  
+ */
+
 static display_data_t display_data_job[] = {
-	{G_TYPE_INT, SORTID_POS, NULL, FALSE, -1, refresh_job,
-	 create_model_job, admin_edit_job},
-	{G_TYPE_INT, SORTID_JOBID, "JobID", TRUE, -1, refresh_job,
-	 create_model_job, admin_edit_job},
-	{G_TYPE_STRING, SORTID_ACTION, "Action", FALSE, 0, refresh_job,
+	{G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE, refresh_job,
 	 create_model_job, admin_edit_job},
-	{G_TYPE_INT, SORTID_ALLOC, NULL, FALSE, -1, refresh_job,
+	{G_TYPE_INT, SORTID_JOBID, "JobID", TRUE, EDIT_NONE, refresh_job,
 	 create_model_job, admin_edit_job},
-	{G_TYPE_STRING, SORTID_PARTITION, "Partition", TRUE, 1, refresh_job,
+	{G_TYPE_STRING, SORTID_ACTION, "Action", FALSE,
+	 EDIT_MODEL, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_INT, SORTID_ALLOC, NULL, FALSE, EDIT_NONE, refresh_job,
 	 create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_PARTITION, "Partition", TRUE,
+	 EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 #ifdef HAVE_BG
-	{G_TYPE_STRING, SORTID_BLOCK, "BG Block", TRUE, -1, refresh_job,
+	{G_TYPE_STRING, SORTID_BLOCK, "BG Block", TRUE, EDIT_NONE, refresh_job,
 	 create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_GEOMETRY, "Geometry", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_START, "Start", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_ROTATE, "Rotate", 
-	 FALSE, 0, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_MODEL, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_CONNECTION, "Connection", 
-	 FALSE, 0, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_MODEL, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_BLRTSIMAGE, "Blrts Image",
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_LINUXIMAGE, "linux Image",
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MLOADERIMAGE, "Mloader Image",
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_RAMDISKIMAGE, "Ramdisk Image",
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 #endif
-	{G_TYPE_STRING, SORTID_USER, "User", TRUE, -1, refresh_job,
+	{G_TYPE_STRING, SORTID_USER, "User", TRUE, EDIT_NONE, refresh_job,
 	 create_model_job, admin_edit_job},
-	{G_TYPE_STRING, SORTID_GROUP, "Group", FALSE, -1, refresh_job,
+	{G_TYPE_STRING, SORTID_GROUP, "Group", FALSE, EDIT_NONE, refresh_job,
 	 create_model_job, admin_edit_job},
-	{G_TYPE_STRING, SORTID_NAME, "Name", TRUE, 1, refresh_job,
+	{G_TYPE_STRING, SORTID_NAME, "Name", TRUE, EDIT_TEXTBOX, refresh_job,
 	 create_model_job, admin_edit_job},
-	{G_TYPE_STRING, SORTID_STATE, "State", TRUE, -1, refresh_job,
+	{G_TYPE_STRING, SORTID_STATE, "State", TRUE, EDIT_NONE, refresh_job,
 	 create_model_job, admin_edit_job},
-	{G_TYPE_INT, SORTID_STATE_NUM, NULL, FALSE, -1, refresh_job,
-	 create_model_job, admin_edit_job},
-	{G_TYPE_STRING, SORTID_TIME, "Running Time", TRUE, -1, refresh_job,
+	{G_TYPE_INT, SORTID_STATE_NUM, NULL, FALSE, EDIT_NONE, refresh_job,
 	 create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_TIME, "Running Time", TRUE,
+	 EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_SUBMIT_TIME, "Submit Time", FALSE,
-	 -1, refresh_job,
+	 EDIT_NONE, refresh_job,
 	 create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_START_TIME, "Start Time", FALSE,
-	 1, refresh_job,
-	 create_model_job, admin_edit_job},
-	{G_TYPE_STRING, SORTID_END_TIME, "End Time", FALSE, -1, refresh_job,
+	 EDIT_TEXTBOX, refresh_job,
 	 create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_END_TIME, "End Time", FALSE,
+	 EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_SUSPEND_TIME, "Suspended Time", FALSE,
-	 -1, refresh_job,
-	 create_model_job, admin_edit_job},
-	{G_TYPE_STRING, SORTID_TIMELIMIT, "Time Limit", FALSE, 1, refresh_job,
+	 EDIT_NONE, refresh_job,
 	 create_model_job, admin_edit_job},
-	{G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, -1, refresh_job,
+	{G_TYPE_STRING, SORTID_TIMELIMIT, "Time Limit", FALSE,
+	 EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, EDIT_NONE, refresh_job,
 	 create_model_job, admin_edit_job},
 #ifdef HAVE_BG
-	{G_TYPE_STRING, SORTID_NODELIST, "BP List", TRUE, -1, refresh_job,
-	 create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_NODELIST, "BP List", TRUE, EDIT_NONE,
+	 refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_REQ_NODELIST, "Requested BP List",
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_EXC_NODELIST, "Excluded BP List",
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 #else
-	{G_TYPE_STRING, SORTID_NODELIST, "Nodelist", TRUE, -1, refresh_job,
-	 create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_NODELIST, "Nodelist", TRUE,
+	 EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_REQ_NODELIST, "Requested NodeList", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_EXC_NODELIST, "Excluded NodeList", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 #endif
-	{G_TYPE_STRING, SORTID_CONTIGUOUS, "Contiguous", FALSE, 0, 
+	{G_TYPE_STRING, SORTID_CONTIGUOUS, "Contiguous", FALSE, EDIT_MODEL, 
 	 refresh_job, create_model_job, admin_edit_job},
-	{G_TYPE_STRING, SORTID_PRIORITY, "Priority", FALSE, 1, refresh_job,
-	 create_model_job, admin_edit_job},
-	{G_TYPE_STRING, SORTID_EXIT_CODE, "Exit Code", FALSE, -1, refresh_job,
-	 create_model_job, admin_edit_job},
-	{G_TYPE_STRING, SORTID_BATCH, "Batch Flag", FALSE, -1, refresh_job,
-	 create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_PRIORITY, "Priority", FALSE, 
+	 EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_EXIT_CODE, "Exit Code", FALSE,
+	 EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_BATCH, "Batch Flag", FALSE, 
+	 EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_NUM_PROCS, "Num Processors", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_TASKS, "Num Tasks", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
-	{G_TYPE_STRING, SORTID_SHARED, "Shared", FALSE, 0, refresh_job,
-	 create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_SHARED, "Shared", FALSE,
+	 EDIT_MODEL, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_CPUS_PER_TASK, "Cpus per Task", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_REQ_PROCS, "Requested Procs", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MIN_NODES, "Min Nodes", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MAX_NODES, "Max Nodes", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MIN_PROCS, "Min Procs", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 #ifdef HAVE_BG
 	{G_TYPE_STRING, SORTID_MAX_PROCS, "Max Procs", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 #endif
 	{G_TYPE_STRING, SORTID_MIN_SOCKETS, "Min Sockets", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MAX_SOCKETS, "Max Sockets", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MIN_CORES, "Min Cores", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MAX_CORES, "Max Cores", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MIN_THREADS, "Min Threads", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MAX_THREADS, "Max Threads", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MIN_MEM, "Min Memory", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MAX_MEM, "Max Memory", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_TMP_DISK, "Tmp Disk", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_NICE, "Nice", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_ACCOUNT, "Account Charged", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_REASON, "Wait Reason", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},	
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_FEATURES, "Features", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_DEPENDENCY, "Dependency", 
-	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_ALLOC_NODE, "Alloc Node : Sid",
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_NTASKS_PER_NODE, "Num tasks per Node", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_NTASKS_PER_SOCKET, "Num tasks per Socket", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_NTASKS_PER_CORE, "Num tasks per Core", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_NETWORK, "Network", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_COMMENT, "Comment", 
-	 FALSE, -1, refresh_job, create_model_job, admin_edit_job},
-	{G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, -1, refresh_job,
+	 FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, EDIT_NONE, refresh_job,
 	 create_model_job, admin_edit_job},
-	{G_TYPE_NONE, -1, NULL, FALSE, -1}
+	{G_TYPE_NONE, EDIT_NONE, NULL, FALSE, EDIT_NONE}
 };
 
 static display_data_t options_data_job[] = {
-	{G_TYPE_INT, SORTID_POS, NULL, FALSE, -1},
+	{G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE},
 	{G_TYPE_STRING, INFO_PAGE, "Full Info", TRUE, JOB_PAGE},
 	{G_TYPE_STRING, JOB_PAGE, "Signal", TRUE, ADMIN_PAGE},
 	{G_TYPE_STRING, JOB_PAGE, "Cancel", TRUE, ADMIN_PAGE},
@@ -303,7 +308,7 @@ static display_data_t options_data_job[] = {
 #else
 	{G_TYPE_STRING, NODE_PAGE, "Nodes", TRUE, JOB_PAGE},
 #endif
-	{G_TYPE_NONE, -1, NULL, FALSE, -1}
+	{G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE}
 };
 
 struct signv {
@@ -922,7 +927,7 @@ static GtkWidget *_admin_full_edit_job(job_desc_msg_t *job_msg,
 	gtk_table_set_homogeneous(table, FALSE);	
 
 	for(i = 0; i < SORTID_CNT; i++) {
-		if(display_data_job[i].extra == 0) {
+		if(display_data_job[i].extra == EDIT_MODEL) {
 			/* edittable items that can only be known
 			   values */
 			model2 = GTK_TREE_MODEL(
@@ -948,7 +953,7 @@ static GtkWidget *_admin_full_edit_job(job_desc_msg_t *job_msg,
 						   renderer, TRUE);
 			gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(entry),
 						      renderer, "text", 0);
-		} else if(display_data_job[i].extra == 1) {
+		} else if(display_data_job[i].extra == EDIT_TEXTBOX) {
 			/* other edittable items that are unknown */
 			entry = create_entry();
 			gtk_tree_model_get(model, iter, display_data_job[i].id,
@@ -1453,28 +1458,23 @@ static void _update_job_record(sview_job_info_t *sview_job_info_ptr,
 		snprint_time(tmp_char, sizeof(tmp_char), now_time);
 		nodes = sview_job_info_ptr->nodes;	
 	}
-	gtk_tree_store_set(treestore, iter, 
-			   SORTID_TIME, tmp_char, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_TIME, tmp_char, -1);
 	slurm_make_time_str((time_t *)&job_ptr->submit_time, tmp_char,
 			    sizeof(tmp_char));
-	gtk_tree_store_set(treestore, iter, 
-			   SORTID_SUBMIT_TIME, tmp_char, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_SUBMIT_TIME, tmp_char, -1);
 	slurm_make_time_str((time_t *)&job_ptr->start_time, tmp_char,
 			    sizeof(tmp_char));
-	gtk_tree_store_set(treestore, iter, 
-			   SORTID_START_TIME, tmp_char, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_START_TIME, tmp_char, -1);
 	if ((job_ptr->time_limit == INFINITE) && 
 	    (job_ptr->end_time > time(NULL)))
 		sprintf(tmp_char, "NONE");
 	else 
 		slurm_make_time_str((time_t *)&job_ptr->end_time, tmp_char,
 				    sizeof(tmp_char));
-	gtk_tree_store_set(treestore, iter, 
-			   SORTID_END_TIME, tmp_char, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_END_TIME, tmp_char, -1);
 	slurm_make_time_str((time_t *)&job_ptr->suspend_time, tmp_char,
 			    sizeof(tmp_char));
-	gtk_tree_store_set(treestore, iter, 
-			   SORTID_SUSPEND_TIME, tmp_char, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_SUSPEND_TIME, tmp_char, -1);
 
 	if (job_ptr->time_limit == INFINITE)
 		sprintf(tmp_char, "UNLIMITED");
@@ -1482,18 +1482,15 @@ static void _update_job_record(sview_job_info_t *sview_job_info_ptr,
 		sprintf(tmp_char, "Partition Limit");
 	else
 		snprint_time(tmp_char, sizeof(tmp_char), job_ptr->time_limit);
-	gtk_tree_store_set(treestore, iter, 
-			   SORTID_TIMELIMIT, tmp_char, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_TIMELIMIT, tmp_char, -1);
 	
 	gtk_tree_store_set(treestore, iter, SORTID_ALLOC, 1, -1);
-	gtk_tree_store_set(treestore, iter, 
-			   SORTID_JOBID, job_ptr->job_id, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_JOBID, job_ptr->job_id, -1);
 	gtk_tree_store_set(treestore, iter, 
 			   SORTID_PARTITION, job_ptr->partition, -1);
 	snprintf(tmp_char, sizeof(tmp_char), "%s:%u",
 		 job_ptr->alloc_node, job_ptr->alloc_sid);
-	gtk_tree_store_set(treestore, iter, 
-			   SORTID_ALLOC_NODE, tmp_char, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_ALLOC_NODE, tmp_char, -1);
 		
 #ifdef HAVE_BG
 	gtk_tree_store_set(treestore, iter, 
@@ -1587,8 +1584,7 @@ static void _update_job_record(sview_job_info_t *sview_job_info_ptr,
 			   SORTID_GROUP, 
 			   tmp_char, -1);
 		
-	gtk_tree_store_set(treestore, iter, 
-			   SORTID_NAME, job_ptr->name, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_NAME, job_ptr->name, -1);
 	gtk_tree_store_set(treestore, iter, 
 			   SORTID_STATE, 
 			   job_state_string(job_ptr->job_state), -1);
@@ -2268,9 +2264,7 @@ need_refresh:
 					i);
 			j += 2;
 		}
-		_layout_job_record(treeview, 
-				   sview_job_info,
-				   update);
+		_layout_job_record(treeview, sview_job_info, update);
 		found = 1;
 	} else {
 		itr = list_iterator_create(sview_job_info->step_list);
diff --git a/src/sview/node_info.c b/src/sview/node_info.c
index 5ed29be40a43e61b229905403b67e6e9ba9bd9fe..65c7446b2585a866265373bcee1efc793931bcc0 100644
--- a/src/sview/node_info.c
+++ b/src/sview/node_info.c
@@ -34,46 +34,58 @@
 enum { 
 	SORTID_POS = POS_LOC,
 	SORTID_CPUS, 
+	SORTID_CORES,
 	SORTID_DISK, 
 	SORTID_FEATURES, 
 	SORTID_MEMORY, 
 	SORTID_NAME, 
 	SORTID_REASON,
+	SORTID_SOCKETS,
 	SORTID_STATE,
 	SORTID_STATE_NUM,
+	SORTID_THREADS,
 	SORTID_UPDATED, 
+	SORTID_USED_CPUS, 
 	SORTID_WEIGHT, 
 	SORTID_CNT
 };
 
 static display_data_t display_data_node[] = {
-	{G_TYPE_INT, SORTID_POS, NULL, FALSE, -1, refresh_node,
+	{G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE, refresh_node,
 	 create_model_node, admin_edit_node},
-	{G_TYPE_STRING, SORTID_NAME, "Name", TRUE, -1, refresh_node,
+	{G_TYPE_STRING, SORTID_NAME, "Name", TRUE, EDIT_NONE, refresh_node,
 	 create_model_node, admin_edit_node},
-	{G_TYPE_STRING, SORTID_STATE, "State", TRUE, 0, refresh_node,
+	{G_TYPE_STRING, SORTID_STATE, "State", TRUE, EDIT_MODEL, refresh_node,
 	 create_model_node, admin_edit_node},
-	{G_TYPE_INT, SORTID_STATE_NUM, NULL, FALSE, -1, refresh_node,
+	{G_TYPE_INT, SORTID_STATE_NUM, NULL, FALSE, EDIT_NONE, refresh_node,
 	 create_model_node, admin_edit_node},
-	{G_TYPE_INT, SORTID_CPUS, "CPU Count", TRUE, -1, refresh_node,
+	{G_TYPE_INT, SORTID_CPUS, "CPU Count", TRUE, EDIT_NONE, refresh_node,
 	 create_model_node, admin_edit_node},
-	{G_TYPE_STRING, SORTID_MEMORY, "Real Memory", TRUE, -1, refresh_node,
+	{G_TYPE_INT, SORTID_USED_CPUS, "Used CPU Count", TRUE,
+	 EDIT_NONE, refresh_node, create_model_node, admin_edit_node},
+	{G_TYPE_INT, SORTID_CORES, "Cores", TRUE,
+	 EDIT_NONE, refresh_node, create_model_node, admin_edit_node},
+	{G_TYPE_INT, SORTID_SOCKETS, "Sockets", TRUE,
+	 EDIT_NONE, refresh_node, create_model_node, admin_edit_node},
+	{G_TYPE_INT, SORTID_THREADS, "Threads", TRUE,
+	 EDIT_NONE, refresh_node, create_model_node, admin_edit_node},
+	{G_TYPE_STRING, SORTID_MEMORY, "Real Memory", TRUE, 
+	 EDIT_NONE, refresh_node, create_model_node, admin_edit_node},
+	{G_TYPE_STRING, SORTID_DISK, "Tmp Disk", TRUE, EDIT_NONE, refresh_node,
 	 create_model_node, admin_edit_node},
-	{G_TYPE_STRING, SORTID_DISK, "Tmp Disk", TRUE, -1, refresh_node,
+	{G_TYPE_INT, SORTID_WEIGHT,"Weight", FALSE, EDIT_NONE, refresh_node,
 	 create_model_node, admin_edit_node},
-	{G_TYPE_INT, SORTID_WEIGHT,"Weight", FALSE, -1, refresh_node,
+	{G_TYPE_STRING, SORTID_FEATURES, "Features", FALSE, 
+	 EDIT_TEXTBOX, refresh_node, create_model_node, admin_edit_node},
+	{G_TYPE_STRING, SORTID_REASON, "Reason", FALSE,
+	 EDIT_NONE, refresh_node, create_model_node, admin_edit_node},
+	{G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, EDIT_NONE, refresh_node,
 	 create_model_node, admin_edit_node},
-	{G_TYPE_STRING, SORTID_FEATURES, "Features", FALSE, 1, refresh_node,
-	 create_model_node, admin_edit_node},
-	{G_TYPE_STRING, SORTID_REASON, "Reason", FALSE, -1, refresh_node,
-	 create_model_node, admin_edit_node},
-	{G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, -1, refresh_node,
-	 create_model_node, admin_edit_node},
-	{G_TYPE_NONE, -1, NULL, FALSE, -1}
+	{G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE}
 };
 
 static display_data_t options_data_node[] = {
-	{G_TYPE_INT, SORTID_POS, NULL, FALSE, -1},
+	{G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE},
 	{G_TYPE_STRING, INFO_PAGE, "Full Info", TRUE, NODE_PAGE},
 #ifdef HAVE_BG
 	{G_TYPE_STRING, NODE_PAGE, "Drain Base Partition", TRUE, ADMIN_PAGE},
@@ -95,7 +107,7 @@ static display_data_t options_data_node[] = {
 #endif
 	{G_TYPE_STRING, PART_PAGE, "Partition", TRUE, NODE_PAGE},
 	{G_TYPE_STRING, SUBMIT_PAGE, "Job Submit", FALSE, NODE_PAGE},
-	{G_TYPE_NONE, -1, NULL, FALSE, -1}
+	{G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE}
 };
 
 static display_data_t *local_display_data = NULL;
@@ -131,6 +143,30 @@ static void _layout_node_record(GtkTreeView *treeview,
 						 SORTID_CPUS),
 				   tmp_cnt);
 
+	convert_num_unit((float)node_ptr->used_cpus, tmp_cnt, UNIT_NONE);
+	add_display_treestore_line(update, treestore, &iter, 
+				   find_col_name(display_data_node,
+						 SORTID_USED_CPUS),
+				   tmp_cnt);
+
+	convert_num_unit((float)node_ptr->cores, tmp_cnt, UNIT_NONE);
+	add_display_treestore_line(update, treestore, &iter, 
+				   find_col_name(display_data_node,
+						 SORTID_CORES),
+				   tmp_cnt);
+
+	convert_num_unit((float)node_ptr->sockets, tmp_cnt, UNIT_NONE);
+	add_display_treestore_line(update, treestore, &iter, 
+				   find_col_name(display_data_node,
+						 SORTID_SOCKETS),
+				   tmp_cnt);
+
+	convert_num_unit((float)node_ptr->threads, tmp_cnt, UNIT_NONE);
+	add_display_treestore_line(update, treestore, &iter, 
+				   find_col_name(display_data_node,
+						 SORTID_THREADS),
+				   tmp_cnt);
+
 	convert_num_unit((float)node_ptr->real_memory, tmp_cnt, UNIT_MEGA);
 	add_display_treestore_line(update, treestore, &iter, 
 				   find_col_name(display_data_node,
@@ -174,7 +210,13 @@ static void _update_node_record(node_info_t *node_ptr,
 	gtk_tree_store_set(treestore, iter, SORTID_STATE_NUM, 
 			   node_ptr->node_state, -1);
 	gtk_tree_store_set(treestore, iter, SORTID_CPUS, node_ptr->cpus, -1);
-
+	gtk_tree_store_set(treestore, iter, SORTID_USED_CPUS,
+			   node_ptr->used_cpus, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_CORES, node_ptr->cpus, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_SOCKETS,
+			   node_ptr->sockets, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_THREADS,
+			   node_ptr->threads, -1);
 	convert_num_unit((float)node_ptr->real_memory, tmp_cnt, UNIT_MEGA);
 	gtk_tree_store_set(treestore, iter, SORTID_MEMORY, tmp_cnt, -1);
 	convert_num_unit((float)node_ptr->tmp_disk, tmp_cnt, UNIT_MEGA);
@@ -400,7 +442,6 @@ extern List create_node_info_list(node_info_msg_t *node_info_ptr, int changed)
 		sview_node_info_ptr = xmalloc(sizeof(sview_node_info_t));
 		list_append(info_list, sview_node_info_ptr);
 		sview_node_info_ptr->node_ptr = node_ptr;
-		
 	}
 update_color:
 	
diff --git a/src/sview/part_info.c b/src/sview/part_info.c
index 0a672966b0f31d8afa3c73e35447f94a9912110b..47ce54d6057a9b54df76ccb3bdde9c30a45ff7cd 100644
--- a/src/sview/part_info.c
+++ b/src/sview/part_info.c
@@ -100,64 +100,64 @@ enum {
 };
 
 static display_data_t display_data_part[] = {
-	{G_TYPE_INT, SORTID_POS, NULL, FALSE, -1, refresh_part},
-	{G_TYPE_STRING, SORTID_NAME, "Partition", TRUE, -1, refresh_part,
-	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_DEFAULT, "Default", TRUE, 0, refresh_part,
-	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_HIDDEN, "Hidden", FALSE, 0, refresh_part,
-	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_AVAIL, "Availablity", TRUE, 0, refresh_part,
-	 create_model_part, admin_edit_part},
+	{G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE, refresh_part},
+	{G_TYPE_STRING, SORTID_NAME, "Partition", TRUE,
+	 EDIT_NONE, refresh_part, create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_DEFAULT, "Default", TRUE,
+	 EDIT_MODEL, refresh_part, create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_HIDDEN, "Hidden", FALSE,
+	 EDIT_MODEL, refresh_part, create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_AVAIL, "Availablity", TRUE,
+	 EDIT_MODEL, refresh_part, create_model_part, admin_edit_part},
 	{G_TYPE_STRING, SORTID_TIMELIMIT, "Time Limit", 
-	 TRUE, 1, refresh_part, create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, -1, refresh_part,
+	 TRUE, EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, EDIT_NONE, refresh_part,
 	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_STATE, "State", TRUE, 0, refresh_part,
+	{G_TYPE_STRING, SORTID_STATE, "State", TRUE, EDIT_MODEL, refresh_part,
 	 create_model_part, admin_edit_part},
 #ifdef HAVE_BG
-	{G_TYPE_STRING, SORTID_NODELIST, "BP List", TRUE, 1, refresh_part,
-	 create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_NODELIST, "BP List", TRUE,
+	 EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part},
 #else
-	{G_TYPE_STRING, SORTID_NODELIST, "NodeList", TRUE, 1, refresh_part,
-	 create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_NODELIST, "NodeList", TRUE,
+	 EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part},
 #endif
-	{G_TYPE_STRING, SORTID_JOB_SIZE, "Job Size", FALSE, -1, refresh_part,
-	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_MIN_NODES, "Min Nodes", FALSE, 1, refresh_part,
-	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_MAX_NODES, "Max Nodes", FALSE, 1, refresh_part,
-	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_ROOT, "Root", FALSE, 0, refresh_part,
-	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_SHARE, "Share", FALSE, 0, refresh_part,
-	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_GROUPS, "Groups", FALSE, 0, refresh_part,
-	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_CPUS, "CPUs", FALSE, -1, refresh_part,
-	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_TMP_DISK, "Temp Disk", FALSE, -1, refresh_part,
-	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_MEM, "Memory", FALSE, -1, refresh_part,
+	{G_TYPE_STRING, SORTID_JOB_SIZE, "Job Size", FALSE,
+	 EDIT_NONE, refresh_part, create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_MIN_NODES, "Min Nodes", FALSE,
+	 EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_MAX_NODES, "Max Nodes", FALSE,
+	 EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_ROOT, "Root", FALSE, EDIT_MODEL, refresh_part,
 	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_WEIGHT, "Weight", FALSE, -1, refresh_part,
+	{G_TYPE_STRING, SORTID_SHARE, "Share", FALSE, EDIT_MODEL, refresh_part,
 	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_FEATURES, "Features", FALSE, 1, refresh_part,
+	{G_TYPE_STRING, SORTID_GROUPS, "Groups", FALSE,
+	 EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_CPUS, "CPUs", FALSE, EDIT_NONE, refresh_part,
 	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_REASON, "Reason", FALSE, -1, refresh_part,
+	{G_TYPE_STRING, SORTID_TMP_DISK, "Temp Disk", FALSE,
+	 EDIT_NONE, refresh_part, create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_MEM, "Memory", FALSE, EDIT_NONE, refresh_part,
 	 create_model_part, admin_edit_part},
-	{G_TYPE_INT, SORTID_STATE_NUM, NULL, FALSE, -1, refresh_part,
+	{G_TYPE_STRING, SORTID_WEIGHT, "Weight", FALSE,
+	 EDIT_NONE, refresh_part, create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_FEATURES, "Features", FALSE,
+	 EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_REASON, "Reason", FALSE,
+	 EDIT_NONE, refresh_part, create_model_part, admin_edit_part},
+	{G_TYPE_INT, SORTID_STATE_NUM, NULL, FALSE, EDIT_NONE, refresh_part,
 	 create_model_part, admin_edit_part},
-	{G_TYPE_INT, SORTID_ONLY_LINE, NULL, FALSE, -1, refresh_part,
+	{G_TYPE_INT, SORTID_ONLY_LINE, NULL, FALSE, EDIT_NONE, refresh_part,
 	 create_model_part, admin_edit_part},
-	{G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, -1, refresh_part,
+	{G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, EDIT_NONE, refresh_part,
 	 create_model_part, admin_edit_part},
 
-	{G_TYPE_NONE, -1, NULL, FALSE, -1}
+	{G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE}
 };
 
 static display_data_t options_data_part[] = {
-	{G_TYPE_INT, SORTID_POS, NULL, FALSE, -1},
+	{G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE},
 	{G_TYPE_STRING, INFO_PAGE, "Full Info", TRUE, PART_PAGE},
 #ifdef HAVE_BG
 	{G_TYPE_STRING, PART_PAGE, "Drain Base Partitions", TRUE, ADMIN_PAGE},
@@ -186,7 +186,7 @@ static display_data_t options_data_part[] = {
 	{G_TYPE_STRING, NODE_PAGE, "Nodes", TRUE, PART_PAGE},
 #endif
 	{G_TYPE_STRING, SUBMIT_PAGE, "Job Submit", FALSE, PART_PAGE},
-	{G_TYPE_NONE, -1, NULL, FALSE, -1}
+	{G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE}
 };
 
 #ifdef HAVE_BG
@@ -537,7 +537,7 @@ static GtkWidget *_admin_full_edit_part(update_part_msg_t *part_msg,
 	gtk_table_set_homogeneous(table, FALSE);	
 
 	for(i = 0; i < SORTID_CNT; i++) {
-		if(display_data_part[i].extra == 0) {
+		if(display_data_part[i].extra == EDIT_MODEL) {
 			/* edittable items that can only be known
 			   values */
 			model2 = GTK_TREE_MODEL(
@@ -564,7 +564,7 @@ static GtkWidget *_admin_full_edit_part(update_part_msg_t *part_msg,
 						   renderer, TRUE);
 			gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(entry),
 						      renderer, "text", 0);
-		} else if(display_data_part[i].extra == 1) {
+		} else if(display_data_part[i].extra == EDIT_TEXTBOX) {
 			/* other edittable items that are unknown */
 			entry = create_entry();
 			gtk_tree_model_get(model, iter,
@@ -1533,6 +1533,8 @@ void _display_info_part(List info_list,	popup_info_t *popup_win)
 		//info = xstrdup("No pointer given!");
 		goto finished;
 	}
+	if(!list_count(popup_win->grid_button_list)) 
+		first_time = 1;
 
 need_refresh:
 	if(!spec_info->display_widget) {
diff --git a/src/sview/sview.h b/src/sview/sview.h
index a8726955b6f38c08234375b34a87738d806914bd..ed58c5664fd758ccb8169f4c5163723aa5d30133 100644
--- a/src/sview/sview.h
+++ b/src/sview/sview.h
@@ -109,6 +109,11 @@ enum { DISPLAY_NAME,
        DISPLAY_VALUE 
 };
 
+enum { EDIT_NONE,
+       EDIT_MODEL,
+       EDIT_TEXTBOX	
+};
+
 typedef enum { SEARCH_JOB_ID = 1,
 	       SEARCH_JOB_USER,
 	       SEARCH_JOB_STATE,