Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Philipp Spohr
YoshikoWrapper
Commits
034606c6
Commit
034606c6
authored
Dec 21, 2017
by
Philipp Spohr
Browse files
Some work on making CyColumns tunable via their name
parent
f8d44b69
Changes
5
Hide whitespace changes
Inline
Side-by-side
src/main/java/de/hhu/ba/yoshikoWrapper/core/ParameterSet.java
View file @
034606c6
...
...
@@ -20,9 +20,9 @@ public class ParameterSet implements TunableValidator
@Tunable
(
description
=
"A column in the edge table containing weights"
,
context
=
"nogui"
)
public
String
weightColumnName
;
@Tunable
(
description
=
"A column containing boolean entries for edges that are to be treated as permanent"
,
context
=
"nogui"
)
public
CyColumn
permanentColumn
;
public
String
permanentColumn
Name
;
@Tunable
(
description
=
"A column containing boolean entries for edges that are to be treated as forbidden"
,
context
=
"nogui"
)
public
CyColumn
forbiddenColumn
;
public
String
forbiddenColumn
Name
;
@Tunable
(
description
=
"The default insertion cost that is to be used for non-existing edges"
,
context
=
"nogui"
)
public
double
defaultInsertionCost
=
-
1
;
...
...
src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/ColumnMapper.java
View file @
034606c6
...
...
@@ -60,7 +60,7 @@ SetCurrentNetworkListener
{
//Swing components
private
final
JComboBox
<
CyColumn
>
editingCos
tMapper
;
private
final
JComboBox
<
CyColumn
>
weigh
tMapper
;
private
final
JComboBox
<
CyColumn
>
permanentMapper
;
private
final
JComboBox
<
CyColumn
>
forbiddenMapper
;
...
...
@@ -79,12 +79,12 @@ SetCurrentNetworkListener
//SWING COMPONENTS
//Combo-Boxes that map to the CyColumns
editingCos
tMapper
=
new
JComboBox
<
CyColumn
>();
weigh
tMapper
=
new
JComboBox
<
CyColumn
>();
permanentMapper
=
new
JComboBox
<
CyColumn
>();
forbiddenMapper
=
new
JComboBox
<
CyColumn
>();
//Should only be enabled if the option is checked
editingCos
tMapper
.
setEnabled
(
false
);
weigh
tMapper
.
setEnabled
(
false
);
permanentMapper
.
setEnabled
(
false
);
forbiddenMapper
.
setEnabled
(
false
);
...
...
@@ -93,7 +93,7 @@ SetCurrentNetworkListener
useMappingForb
=
new
JCheckBox
(
"Map edges as forbidden"
);
useMappingCost
.
addActionListener
(
new
EnableWhenSelectedListener
(
useMappingCost
,
editingCos
tMapper
)
new
EnableWhenSelectedListener
(
useMappingCost
,
weigh
tMapper
)
);
useMappingPerm
.
addActionListener
(
new
EnableWhenSelectedListener
(
useMappingPerm
,
permanentMapper
)
...
...
@@ -103,7 +103,7 @@ SetCurrentNetworkListener
);
SwingUtil
.
addAll
(
this
,
useMappingCost
,
editingCos
tMapper
);
SwingUtil
.
addAll
(
this
,
useMappingCost
,
weigh
tMapper
);
SwingUtil
.
addAll
(
this
,
useMappingPerm
,
permanentMapper
);
SwingUtil
.
addAll
(
this
,
useMappingForb
,
forbiddenMapper
);
...
...
@@ -117,7 +117,7 @@ SetCurrentNetworkListener
.
addComponent
(
useMappingForb
)
)
.
addGroup
(
layout
.
createParallelGroup
(
Alignment
.
LEADING
)
.
addComponent
(
editingCos
tMapper
)
.
addComponent
(
weigh
tMapper
)
.
addComponent
(
permanentMapper
)
.
addComponent
(
forbiddenMapper
)
)
...
...
@@ -127,7 +127,7 @@ SetCurrentNetworkListener
layout
.
setVerticalGroup
(
layout
.
createSequentialGroup
()
.
addGroup
(
layout
.
createParallelGroup
()
.
addComponent
(
useMappingCost
)
.
addComponent
(
editingCos
tMapper
)
.
addComponent
(
weigh
tMapper
)
)
.
addGroup
(
layout
.
createParallelGroup
()
.
addComponent
(
useMappingPerm
)
...
...
@@ -153,18 +153,18 @@ SetCurrentNetworkListener
if
(
net
!=
null
)
{
//Check if a network is loaded
//Clear entries
editingCos
tMapper
.
removeAllItems
();
weigh
tMapper
.
removeAllItems
();
for
(
CyColumn
c
:
net
.
getDefaultEdgeTable
().
getColumns
()){
//Only add columns with numeric values
if
(
c
.
getType
()
==
Integer
.
class
||
c
.
getType
()
==
Double
.
class
)
{
editingCos
tMapper
.
addItem
(
c
);
weigh
tMapper
.
addItem
(
c
);
}
}
boolean
enable
=
(
editingCos
tMapper
.
getItemCount
()
>
0
)
?
true
:
false
;
boolean
enable
=
(
weigh
tMapper
.
getItemCount
()
>
0
)
?
true
:
false
;
useMappingCost
.
setEnabled
(
enable
);
if
(!
useMappingCost
.
isEnabled
())
{
useMappingCost
.
setSelected
(
false
);
editingCos
tMapper
.
setEnabled
(
false
);
weigh
tMapper
.
setEnabled
(
false
);
}
forbiddenMapper
.
removeAllItems
();
...
...
@@ -247,7 +247,7 @@ SetCurrentNetworkListener
public
CyColumn
getEditingCostColumn
()
{
if
(
useMappingCost
.
isSelected
())
{
return
editingCos
tMapper
.
getItemAt
(
editingCos
tMapper
.
getSelectedIndex
());
return
weigh
tMapper
.
getItemAt
(
weigh
tMapper
.
getSelectedIndex
());
}
return
null
;
}
...
...
src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/EditCostPanel.java
View file @
034606c6
...
...
@@ -109,17 +109,11 @@ public class EditCostPanel extends JPanel {
}
//SETTER / GETTER
public
CyColumn
getWeightColumn
()
{
return
columnMapper
.
getEditingCostColumn
();
}
public
CyColumn
getPermanentColumn
()
{
return
columnMapper
.
getPermanentColumn
();
}
public
String
getPermanentColumnName
()
{
return
columnMapper
.
getPermanentColumn
()
!=
null
?
columnMapper
.
getPermanentColumn
().
getName
()
:
null
;
}
public
CyColumn
getForbiddenColumn
()
{
return
columnMapper
.
getForbiddenColumn
();
}
public
String
getForbiddenColumnName
()
{
return
columnMapper
.
getForbiddenColumn
()
!=
null
?
columnMapper
.
getForbiddenColumn
().
getName
()
:
null
;
}
public
double
getDefaultInsertionCost
()
{
return
icField
.
getValueAsDouble
();
...
...
@@ -133,4 +127,8 @@ public class EditCostPanel extends JPanel {
return
columnMapper
;
}
public
String
getWeightColumnName
()
{
return
columnMapper
.
getEditingCostColumn
()
!=
null
?
columnMapper
.
getEditingCostColumn
().
getName
()
:
null
;
}
}
src/main/java/de/hhu/ba/yoshikoWrapper/swing/components/MainPanel.java
View file @
034606c6
...
...
@@ -346,9 +346,9 @@ public class MainPanel extends JPanel implements CytoPanelComponent {
ParameterSet
ret
=
new
ParameterSet
();
ret
.
net
=
net
;
ret
.
timeLimit
=
opModePanel
.
getTimeLimit
();
ret
.
weightColumnName
=
ecPanel
.
getWeightColumn
().
get
Name
();
ret
.
permanentColumn
=
ecPanel
.
getPermanentColumn
();
ret
.
forbiddenColumn
=
ecPanel
.
getForbiddenColumn
();
ret
.
weightColumnName
=
ecPanel
.
getWeightColumnName
();
ret
.
permanentColumn
Name
=
ecPanel
.
getPermanentColumn
Name
();
ret
.
forbiddenColumn
Name
=
ecPanel
.
getForbiddenColumn
Name
();
ret
.
defaultInsertionCost
=
ecPanel
.
getDefaultInsertionCost
();
ret
.
defaultDeletionCost
=
ecPanel
.
getDefaultDeletionCost
();
ret
.
useHeuristic
=
opModePanel
.
useHeuristic
();
...
...
src/main/java/de/hhu/ba/yoshikoWrapper/tasks/AlgorithmTask.java
View file @
034606c6
...
...
@@ -30,13 +30,13 @@ import org.cytoscape.application.swing.CytoPanel;
import
org.cytoscape.application.swing.CytoPanelComponent
;
import
org.cytoscape.application.swing.CytoPanelName
;
import
org.cytoscape.application.swing.CytoPanelState
;
import
org.cytoscape.model.Cy
Network
;
import
org.cytoscape.model.Cy
Column
;
import
org.cytoscape.model.CyNode
;
import
org.cytoscape.work.AbstractTask
;
import
org.cytoscape.work.ContainsTunables
;
import
org.cytoscape.work.ObservableTask
;
import
org.cytoscape.work.TaskMonitor
;
import
org.cytoscape.work.Tunable
;
import
org.cytoscape.work.Tunable
Validator
;
import
org.slf4j.Logger
;
import
de.hhu.ba.yoshikoWrapper.core.CyCore
;
...
...
@@ -58,7 +58,7 @@ import de.hhu.ba.yoshikoWrapper.swig.LibraryInterface;
import
de.hhu.ba.yoshikoWrapper.swing.components.ResultPanel
;
public
class
AlgorithmTask
extends
AbstractTask
implements
ObservableTask
{
public
class
AlgorithmTask
extends
AbstractTask
implements
ObservableTask
,
TunableValidator
{
//Constants
private
static
final
String
SOLUTION_COLUMN_PREFIX
=
"yoshikoSolution_"
;
//TODO: Make customizable?
...
...
@@ -131,22 +131,27 @@ public class AlgorithmTask extends AbstractTask implements ObservableTask {
NodeMap
nodeMap
=
new
NodeMap
(
parameterSet
.
net
);
taskMonitor
.
setProgress
(
0.1
);
//We identify the columns if they exist from their given names
CyColumn
weightColumn
=
parameterSet
.
weightColumnName
!=
null
?
parameterSet
.
net
.
getDefaultEdgeTable
().
getColumn
(
parameterSet
.
weightColumnName
)
:
null
;
CyColumn
permanentColumn
=
parameterSet
.
permanentColumnName
!=
null
?
parameterSet
.
net
.
getDefaultEdgeTable
().
getColumn
(
parameterSet
.
permanentColumnName
)
:
null
;
CyColumn
forbiddenColumn
=
parameterSet
.
forbiddenColumnName
!=
null
?
parameterSet
.
net
.
getDefaultEdgeTable
().
getColumn
(
parameterSet
.
forbiddenColumnName
)
:
null
;
//Generate an c_input instance from the network
c_input
=
NetworkParser
.
parseNetwork
(
parameterSet
.
net
,
nodeMap
,
parameterSet
.
net
.
getDefaultEdgeTable
().
getColumn
(
parameterSet
.
weightColumnName
),
//Simplify
parameterSet
.
permanentColumn
,
parameterSet
.
forbiddenColumn
,
weightColumn
,
permanentColumn
,
forbiddenColumn
,
parameterSet
.
defaultDeletionCost
);
taskMonitor
.
setProgress
(
0.2
);
boolean
containsRealValues
=
GraphAnalyzer
.
containsRealValues
(
parameterSet
.
net
,
parameterSet
.
net
.
getDefaultEdgeTable
().
getColumn
(
parameterSet
.
weightColumn
Name
)
,
parameterSet
.
permanentColumn
,
parameterSet
.
forbiddenColumn
,
weightColumn
,
permanentColumn
,
forbiddenColumn
,
parameterSet
.
defaultInsertionCost
,
parameterSet
.
defaultDeletionCost
);
...
...
@@ -305,4 +310,10 @@ public class AlgorithmTask extends AbstractTask implements ObservableTask {
}
return
null
;
}
@Override
public
ValidationState
getValidationState
(
Appendable
errMsg
)
{
//In order to validate the arguments for this task we simply check the ParameterSet
return
parameterSet
.
getValidationState
(
errMsg
);
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment