Home > src > createSoftMetaConstraint_Dialog.m

# createSoftMetaConstraint_Dialog

## PURPOSE

- create soft meta-constraint dialog

## SYNOPSIS

function varargout = createSoftMetaConstraint_Dialog(varargin)

## DESCRIPTION

     - create soft meta-constraint dialog

     copyright 2009-2012 Blair Armstrong, Christine Watson, David Plaut

        This file is part of SOS

        SOS is free software: you can redistribute it and/or modify
        it for academic and non-commercial purposes
        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.  For commercial or for-profit
        uses, please contact the authors (sos@cnbc.cmu.edu).

        SOS 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.

## CROSS-REFERENCE INFORMATION

This function calls:

- createSoftMetaConstraint_Dialog - create soft meta-constraint dialog
- getdfName - extracts a dataframe name selected in the GUI
- sos_gui - sos main GUI
- validateRealNumber - helper function to validate that a string represents a real number
- verbosePrint - master print function that regulates cmd line output based on verbosity flags

This function is called by:

- createSoftMetaConstraint_Dialog - create soft meta-constraint dialog
- sos_gui - sos main GUI

## SUBFUNCTIONS

- function createSoftMetaConstraint_Dialog_OpeningFcn(hObject, eventdata, handles, varargin)
- function varargout = createSoftMetaConstraint_Dialog_OutputFcn(hObject, eventdata, handles)
- function edit_name_Callback(hObject, eventdata, handles)
- function flag = validate_name(handles)
- function edit_name_CreateFcn(hObject, eventdata, handles)
- function popupmenu_constraint1Selector_Callback(hObject, eventdata, handles)
- function populateConstraintList(hObject)
- function popupmenu_constraint1Selector_CreateFcn(hObject, eventdata, handles)
- function pushbutton_refreshSample1List_Callback(hObject, eventdata, handles)
- function popupmenu_constraint1Selector_ButtonDownFcn(hObject, eventdata, handles)
- function popupmenu_sample1ColSelector_Callback(hObject, eventdata, handles)
- function populateColumnList(hObject,sampleSelector)
- function popupmenu_sample1ColSelector_CreateFcn(hObject, eventdata, handles)
- function pushbutton_refreshsample1ColSelector_Callback(hObject, eventdata, handles)
- function popupmenu_sample2Selector_Callback(hObject, eventdata, handles)
- function popupmenu_sample2Selector_CreateFcn(hObject, eventdata, handles)
- function pushbutton_refreshSample2List_Callback(hObject, eventdata, handles)
- function popupmenu_sample2ColSelector_Callback(hObject, eventdata, handles)
- function popupmenu_sample2ColSelector_CreateFcn(hObject, eventdata, handles)
- function pushbutton_refreshsample2ColSelector_Callback(hObject, eventdata, handles)
- function popupmenu_sample1ColSelector_ButtonDownFcn(hObject, eventdata, handles)
- function popupmenu_sample2Selector_ButtonDownFcn(hObject, eventdata, handles)
- function popupmenu_sample2ColSelector_ButtonDownFcn(hObject, eventdata, handles)
- function edit_value_Callback(hObject, eventdata, handles)
- function flag = validate_value(handles)
- function edit_value_CreateFcn(hObject, eventdata, handles)
- function popupmenu_desiredpvalCondition_Callback(hObject, eventdata, handles)
- function popupmenu_desiredpvalCondition_CreateFcn(hObject, eventdata, handles)
- function popupmenu_tails_Callback(hObject, eventdata, handles)
- function popupmenu_tails_CreateFcn(hObject, eventdata, handles)
- function pushbutton_createSoftMetaConstraint_Callback(hObject, eventdata, handles)
- function popupmenu_type_Callback(hObject, eventdata, handles)
- function popupmenu_type_CreateFcn(hObject, eventdata, handles)
- function popupmenu_fncSelector_Callback(hObject, eventdata, handles)
- function popupmenu_fncSelector_CreateFcn(hObject, eventdata, handles)
- function edit_weight_Callback(hObject, eventdata, handles)
- function flag = validate_weight(handles)
- function edit_weight_CreateFcn(hObject, eventdata, handles)
- function edit_exp_Callback(hObject, eventdata, handles)
- function flag = validate_exp(handles)
- function edit_exp_CreateFcn(hObject, eventdata, handles)
- function popupmenu_statSelector_Callback(hObject, eventdata, handles)
- function popupmenu_statSelector_CreateFcn(hObject, eventdata, handles)
- function popupmenu_constraint2Selector_Callback(hObject, eventdata, handles)
- function popupmenu_constraint2Selector_CreateFcn(hObject, eventdata, handles)
- function pushbutton7_Callback(hObject, eventdata, handles)
- function popupmenu_constraint2Selector_KeyPressFcn(hObject, eventdata, handles)
- function popupmenu_constraint2Selector_ButtonDownFcn(hObject, eventdata, handles)

## SOURCE CODE

    0001 % - create soft meta-constraint dialog
    0002 %
    0003 % copyright 2009-2012 Blair Armstrong, Christine Watson, David Plaut
    0004 %
    0005 %    This file is part of SOS
    0006 %
    0007 %    SOS is free software: you can redistribute it and/or modify
    0008 %    it for academic and non-commercial purposes
    0009 %    under the terms of the GNU General Public License as published by
    0010 %    the Free Software Foundation, either version 3 of the License, or
    0011 %    (at your option) any later version.  For commercial or for-profit
    0012 %    uses, please contact the authors (sos@cnbc.cmu.edu).
    0013 %
    0014 %    SOS is distributed in the hope that it will be useful,
    0015 %    but WITHOUT ANY WARRANTY; without even the implied warranty of
    0016 %    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    0017 %    GNU General Public License for more details.
    0018
    0019 %    You should have received a copy of the GNU General Public License
    0020 %    along with SOS (see COPYING.txt).
    0021 %    If not, see <http://www.gnu.org/licenses/>.
    0022
    0023
    0024 function varargout = createSoftMetaConstraint_Dialog(varargin)
    0025 % CREATESOFTMETACONSTRAINT_DIALOG M-file for createSoftMetaConstraint_Dialog.fig
    0026 %      CREATESOFTMETACONSTRAINT_DIALOG, by itself, creates a new CREATESOFTMETACONSTRAINT_DIALOG or raises the existing
    0027 %      singleton*.
    0028 %
    0029 %      H = CREATESOFTMETACONSTRAINT_DIALOG returns the handle to a new CREATESOFTMETACONSTRAINT_DIALOG or the handle to
    0030 %      the existing singleton*.
    0031 %
    0032 %      CREATESOFTMETACONSTRAINT_DIALOG('CALLBACK',hObject,eventData,handles,...) calls the local
    0033 %      function named CALLBACK in CREATESOFTMETACONSTRAINT_DIALOG.M with the given input arguments.
    0034 %
    0035 %      CREATESOFTMETACONSTRAINT_DIALOG('Property','Value',...) creates a new CREATESOFTMETACONSTRAINT_DIALOG or raises the
    0036 %      existing singleton*.  Starting from the left, property value pairs are
    0037 %      applied to the GUI before createSoftMetaConstraint_Dialog_OpeningFcn gets called.  An
    0038 %      unrecognized property name or invalid value makes property application
    0039 %      stop.  All inputs are passed to createSoftMetaConstraint_Dialog_OpeningFcn via varargin.
    0040 %
    0041 %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    0042 %      instance to run (singleton)".
    0043 %
    0044 % See also: GUIDE, GUIDATA, GUIHANDLES
    0045
    0046 % Edit the above text to modify the response to help createSoftMetaConstraint_Dialog
    0047
    0048 % Last Modified by GUIDE v2.5 17-Sep-2010 15:47:05
    0049
    0050 % Begin initialization code - DO NOT EDIT
    0051 gui_Singleton = 1;
    0052 gui_State = struct('gui_Name',       mfilename, ...
    0053                    'gui_Singleton',  gui_Singleton, ...
    0054                    'gui_OpeningFcn', @createSoftMetaConstraint_Dialog_OpeningFcn, ...
    0055                    'gui_OutputFcn',  @createSoftMetaConstraint_Dialog_OutputFcn, ...
    0056                    'gui_LayoutFcn',  [] , ...
    0057                    'gui_Callback',   []);
    0058 if nargin && ischar(varargin{1})
    0059     gui_State.gui_Callback = str2func(varargin{1});
    0060 end
    0061
    0062 if nargout
    0063     [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    0064 else
    0065     gui_mainfcn(gui_State, varargin{:});
    0066 end
    0067 % End initialization code - DO NOT EDIT
    0068
    0069
    0070 % --- Executes just before createSoftMetaConstraint_Dialog is made visible.
    0071 function createSoftMetaConstraint_Dialog_OpeningFcn(hObject, eventdata, handles, varargin)
    0072 % This function has no output args, see OutputFcn.
    0073 % hObject    handle to figure
    0074 % eventdata  reserved - to be defined in a future version of MATLAB
    0075 % handles    structure with handles and user data (see GUIDATA)
    0076 % varargin   command line arguments to createSoftMetaConstraint_Dialog (see VARARGIN)
    0077
    0078 % Choose default command line output for createSoftMetaConstraint_Dialog
    0079 handles.output = hObject;
    0080
    0081 % Update handles structure
    0082 guidata(hObject, handles);
    0083
    0084 % UIWAIT makes createSoftMetaConstraint_Dialog wait for user response (see UIRESUME)
    0085 % uiwait(handles.figure_createSoftMetaConstraint_Dialog);
    0086
    0087
    0088 % --- Outputs from this function are returned to the command line.
    0089 function varargout = createSoftMetaConstraint_Dialog_OutputFcn(hObject, eventdata, handles)
    0090 % varargout  cell array for returning output args (see VARARGOUT);
    0091 % hObject    handle to figure
    0092 % eventdata  reserved - to be defined in a future version of MATLAB
    0093 % handles    structure with handles and user data (see GUIDATA)
    0094
    0095 % Get default command line output from handles structure
    0096 varargout{1} = handles.output;
    0097
    0098
    0099
    0100 function edit_name_Callback(hObject, eventdata, handles)
    0101 % hObject    handle to edit_name (see GCBO)
    0102 % eventdata  reserved - to be defined in a future version of MATLAB
    0103 % handles    structure with handles and user data (see GUIDATA)
    0104
    0105 % Hints: get(hObject,'String') returns contents of edit_name as text
    0106 %        str2double(get(hObject,'String')) returns contents of edit_name as a double
    0107     validate_name(handles);
    0108
    0109
    0110 function flag = validate_name(handles)
    0111
    0112     varName = get(handles.edit_name,'String');
    0113
    0114     %check to make sure that the name is a valid variable name:
    0115     valid = regexp(varName,'^[a-zA-Z]+\w*$', 'once');
    0116
    0117     if isempty(valid)
    0118         % name is not currently valid, tell the user.
    0119         msgbox('Only letters, numbers, and underscores are permitted in the name of the ttest object.  The first character must also be a letter.',...
    0120                 'Invalid name!');
    0121         flag = false;
    0122     else
    0123         % check to make sure that the new variable name doesn't already exist.
    0124         command = strcat('whos(''',varName,''')');
    0125         varExists = evalin('base',command);
    0126
    0127
    0128         % if a variable with this name already exists, warns the user
    0129         if isempty(varExists) == 0
    0130             msgbox('A variable with this name already exists and will be overridden if you continue',...
    0131                     'Variable name already in use!');
    0132         end
    0133
    0134         flag = true;
    0135     end
    0136
    0137
    0138
    0139 % --- Executes during object creation, after setting all properties.
    0140 function edit_name_CreateFcn(hObject, eventdata, handles)
    0141 % hObject    handle to edit_name (see GCBO)
    0142 % eventdata  reserved - to be defined in a future version of MATLAB
    0143 % handles    empty - handles not created until after all CreateFcns called
    0144
    0145 % Hint: edit controls usually have a white background on Windows.
    0146 %       See ISPC and COMPUTER.
    0147 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0148     set(hObject,'BackgroundColor','white');
    0149 end
    0150
    0151
    0152 % --- Executes on selection change in popupmenu_constraint1Selector.
    0153 function popupmenu_constraint1Selector_Callback(hObject, eventdata, handles)
    0154 % hObject    handle to popupmenu_constraint1Selector (see GCBO)
    0155 % eventdata  reserved - to be defined in a future version of MATLAB
    0156 % handles    structure with handles and user data (see GUIDATA)
    0157
    0158 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_constraint1Selector contents as cell array
    0159 %        contents{get(hObject,'Value')} returns selected item from popupmenu_constraint1Selector
    0160     populateConstraintList(hObject);
    0161
    0162
    0163 function populateConstraintList(hObject)
    0164     % get a list of all populations in the base workspace:
    0165
    0166     mainWindowHandle = sos_gui;
    0167     mainWindowData = guidata(mainWindowHandle);
    0168
    0169     sosObjName = getdfName(mainWindowData.popupmenu_SOSSelector,'SOS');
    0170
    0171    list = {};
    0172     % we have an SOS object.  List its constraints:
    0173     if isempty(sosObjName) == 0
    0174         tmpSOS = evalin('base',sosObjName);
    0175
    0176         for i=1:length(tmpSOS.hardConstraints)
    0177             list = [list ; tmpSOS.hardConstraints{i}.name]; %#ok<AGROW>
    0178         end
    0179
    0180         for i=1:length(tmpSOS.softConstraints)
    0181             list = [list ; tmpSOS.softConstraints{i}.name]; %#ok<AGROW>
    0182         end
    0183
    0184     end
    0185
    0186
    0187     % assign that list to the options in the pop up menu
    0188     warning('off','MATLAB:hg:uicontrol:ParameterValuesMustBeValid');
    0189     set(hObject,'String',list);
    0190     createSoftMetaConstraint_Dialog();
    0191
    0192
    0193
    0194
    0195 % --- Executes during object creation, after setting all properties.
    0196 function popupmenu_constraint1Selector_CreateFcn(hObject, eventdata, handles)
    0197 % hObject    handle to popupmenu_constraint1Selector (see GCBO)
    0198 % eventdata  reserved - to be defined in a future version of MATLAB
    0199 % handles    empty - handles not created until after all CreateFcns called
    0200
    0201 % Hint: popupmenu controls usually have a white background on Windows.
    0202 %       See ISPC and COMPUTER.
    0203 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0204     set(hObject,'BackgroundColor','white');
    0205 end
    0206
    0207
    0208 % --- Executes on button press in pushbutton_refreshSample2List.
    0209 function pushbutton_refreshSample1List_Callback(hObject, eventdata, handles)
    0210 % hObject    handle to pushbutton_refreshSample2List (see GCBO)
    0211 % eventdata  reserved - to be defined in a future version of MATLAB
    0212 % handles    structure with handles and user data (see GUIDATA)
    0213     populateConstraintList(handles.popupmenu_constraint1Selector);
    0214
    0215 % --- If Enable == 'on', executes on mouse press in 5 pixel border.
    0216 % --- Otherwise, executes on mouse press in 5 pixel border or over popupmenu_constraint1Selector.
    0217 function popupmenu_constraint1Selector_ButtonDownFcn(hObject, eventdata, handles)
    0218 % hObject    handle to popupmenu_constraint1Selector (see GCBO)
    0219 % eventdata  reserved - to be defined in a future version of MATLAB
    0220 % handles    structure with handles and user data (see GUIDATA)
    0221     populateConstraint(hObject);
    0222
    0223
    0224 % --- Executes on selection change in popupmenu_sample1ColSelector.
    0225 function popupmenu_sample1ColSelector_Callback(hObject, eventdata, handles)
    0226 % hObject    handle to popupmenu_sample1ColSelector (see GCBO)
    0227 % eventdata  reserved - to be defined in a future version of MATLAB
    0228 % handles    structure with handles and user data (see GUIDATA)
    0229     populateColumnList(hObject,handles.popupmenu_constraint1Selector);
    0230
    0231 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_sample1ColSelector contents as cell array
    0232 %        contents{get(hObject,'Value')} returns selected item from popupmenu_sample1ColSelector
    0233 function populateColumnList(hObject,sampleSelector)
    0234     % get a list of all populations in the base workspace:
    0235
    0236     create = true;
    0237
    0238     % get the sample in the first list.
    0239     sampleMenuHandle = sampleSelector;
    0240     sampleName = getdfName(sampleMenuHandle,'sample 1');
    0241
    0242     if isempty(sampleName)
    0243         create = false;
    0244     end
    0245
    0246     if create == true
    0247         % add in all of the header names associated with that sample.
    0248         tmpColNames = evalin('base',[sampleName,'.header']);
    0249
    0250         % melt and refreeze cells
    0251         colNames = {};
    0252
    0253         for i=1:length(tmpColNames)
    0254             colNames = [colNames ; tmpColNames{i}]; %#ok<AGROW>
    0255         end
    0256
    0257
    0258     % assign that list to the options in the pop up menu
    0259         warning('off','MATLAB:hg:uicontrol:ParameterValuesMustBeValid');
    0260         set(hObject,'String',colNames);
    0261     end
    0262
    0263 % --- Executes during object creation, after setting all properties.
    0264 function popupmenu_sample1ColSelector_CreateFcn(hObject, eventdata, handles)
    0265 % hObject    handle to popupmenu_sample1ColSelector (see GCBO)
    0266 % eventdata  reserved - to be defined in a future version of MATLAB
    0267 % handles    empty - handles not created until after all CreateFcns called
    0268
    0269 % Hint: popupmenu controls usually have a white background on Windows.
    0270 %       See ISPC and COMPUTER.
    0271 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0272     set(hObject,'BackgroundColor','white');
    0273 end
    0274
    0275
    0276 % --- Executes on button press in pushbutton_refreshsample1ColSelector.
    0277 function pushbutton_refreshsample1ColSelector_Callback(hObject, eventdata, handles)
    0278 % hObject    handle to pushbutton_refreshsample1ColSelector (see GCBO)
    0279 % eventdata  reserved - to be defined in a future version of MATLAB
    0280 % handles    structure with handles and user data (see GUIDATA)
    0281     populateColumnList(handles.popupmenu_sample1ColSelector,handles.popupmenu_constraint1Selector);
    0282
    0283
    0284 % --- Executes on selection change in popupmenu_sample2Selector.
    0285 function popupmenu_sample2Selector_Callback(hObject, eventdata, handles)
    0286 % hObject    handle to popupmenu_sample2Selector (see GCBO)
    0287 % eventdata  reserved - to be defined in a future version of MATLAB
    0288 % handles    structure with handles and user data (see GUIDATA)
    0289
    0290 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_sample2Selector contents as cell array
    0291 %        contents{get(hObject,'Value')} returns selected item from popupmenu_sample2Selector
    0292     populateConstraintList(hObject);
    0293
    0294
    0295 % --- Executes during object creation, after setting all properties.
    0296 function popupmenu_sample2Selector_CreateFcn(hObject, eventdata, handles)
    0297 % hObject    handle to popupmenu_sample2Selector (see GCBO)
    0298 % eventdata  reserved - to be defined in a future version of MATLAB
    0299 % handles    empty - handles not created until after all CreateFcns called
    0300
    0301 % Hint: popupmenu controls usually have a white background on Windows.
    0302 %       See ISPC and COMPUTER.
    0303 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0304     set(hObject,'BackgroundColor','white');
    0305 end
    0306
    0307
    0308 % --- Executes on button press in pushbutton_refreshSample2List.
    0309 function pushbutton_refreshSample2List_Callback(hObject, eventdata, handles)
    0310 % hObject    handle to pushbutton_refreshSample2List (see GCBO)
    0311 % eventdata  reserved - to be defined in a future version of MATLAB
    0312 % handles    structure with handles and user data (see GUIDATA)
    0313 populateConstraintList(handles.popupmenu_constraint2Selector);
    0314
    0315
    0316 % --- Executes on selection change in popupmenu_sample2ColSelector.
    0317 function popupmenu_sample2ColSelector_Callback(hObject, eventdata, handles)
    0318 % hObject    handle to popupmenu_sample2ColSelector (see GCBO)
    0319 % eventdata  reserved - to be defined in a future version of MATLAB
    0320 % handles    structure with handles and user data (see GUIDATA)
    0321
    0322 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_sample2ColSelector contents as cell array
    0323 %        contents{get(hObject,'Value')} returns selected item from popupmenu_sample2ColSelector
    0324     populateColumnList(hObject,handles.popupmenu_sample2Selector);
    0325
    0326
    0327 % --- Executes during object creation, after setting all properties.
    0328 function popupmenu_sample2ColSelector_CreateFcn(hObject, eventdata, handles)
    0329 % hObject    handle to popupmenu_sample2ColSelector (see GCBO)
    0330 % eventdata  reserved - to be defined in a future version of MATLAB
    0331 % handles    empty - handles not created until after all CreateFcns called
    0332
    0333 % Hint: popupmenu controls usually have a white background on Windows.
    0334 %       See ISPC and COMPUTER.
    0335 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0336     set(hObject,'BackgroundColor','white');
    0337 end
    0338
    0339
    0340 % --- Executes on button press in pushbutton_refreshsample2ColSelector.
    0341 function pushbutton_refreshsample2ColSelector_Callback(hObject, eventdata, handles)
    0342 % hObject    handle to pushbutton_refreshsample2ColSelector (see GCBO)
    0343 % eventdata  reserved - to be defined in a future version of MATLAB
    0344 % handles    structure with handles and user data (see GUIDATA)
    0345     populateColumnList(handles.popupmenu_sample2ColSelector,handles.popupmenu_sample2Selector);
    0346
    0347
    0348 % --- If Enable == 'on', executes on mouse press in 5 pixel border.
    0349 % --- Otherwise, executes on mouse press in 5 pixel border or over popupmenu_sample1ColSelector.
    0350 function popupmenu_sample1ColSelector_ButtonDownFcn(hObject, eventdata, handles)
    0351 % hObject    handle to popupmenu_sample1ColSelector (see GCBO)
    0352 % eventdata  reserved - to be defined in a future version of MATLAB
    0353 % handles    structure with handles and user data (see GUIDATA)
    0354     populateColumnList(hObject,handles.popupmenu_constraint1Selector);
    0355
    0356
    0357 % --- If Enable == 'on', executes on mouse press in 5 pixel border.
    0358 % --- Otherwise, executes on mouse press in 5 pixel border or over popupmenu_sample2Selector.
    0359 function popupmenu_sample2Selector_ButtonDownFcn(hObject, eventdata, handles)
    0360 % hObject    handle to popupmenu_sample2Selector (see GCBO)
    0361 % eventdata  reserved - to be defined in a future version of MATLAB
    0362 % handles    structure with handles and user data (see GUIDATA)
    0363     populateConstraintList(hObject);
    0364
    0365
    0366 % --- If Enable == 'on', executes on mouse press in 5 pixel border.
    0367 % --- Otherwise, executes on mouse press in 5 pixel border or over popupmenu_sample2ColSelector.
    0368 function popupmenu_sample2ColSelector_ButtonDownFcn(hObject, eventdata, handles)
    0369 % hObject    handle to popupmenu_sample2ColSelector (see GCBO)
    0370 % eventdata  reserved - to be defined in a future version of MATLAB
    0371 % handles    structure with handles and user data (see GUIDATA)
    0372     populateColumnList(hObject,handles.popupmenu_sample2Selector);
    0373
    0374
    0375
    0376 function edit_value_Callback(hObject, eventdata, handles)
    0377 % hObject    handle to edit_value (see GCBO)
    0378 % eventdata  reserved - to be defined in a future version of MATLAB
    0379 % handles    structure with handles and user data (see GUIDATA)
    0380
    0381 % Hints: get(hObject,'String') returns contents of edit_value as text
    0382 %        str2double(get(hObject,'String')) returns contents of edit_value as a double
    0383     validate_value(handles);
    0384
    0385
    0386 function flag = validate_value(handles)
    0387      str = get(handles.edit_value,'String');
    0388
    0389     errmsg = 'Multiplier must be a number';
    0390     errtitle = 'Invalid Multiplier!';
    0391
    0392     flag = validateRealNumber(str,errmsg,errtitle);
    0393
    0394
    0395
    0396 % --- Executes during object creation, after setting all properties.
    0397 function edit_value_CreateFcn(hObject, eventdata, handles)
    0398 % hObject    handle to edit_value (see GCBO)
    0399 % eventdata  reserved - to be defined in a future version of MATLAB
    0400 % handles    empty - handles not created until after all CreateFcns called
    0401
    0402 % Hint: edit controls usually have a white background on Windows.
    0403 %       See ISPC and COMPUTER.
    0404 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0405     set(hObject,'BackgroundColor','white');
    0406 end
    0407
    0408
    0409 % --- Executes on selection change in popupmenu_desiredpvalCondition.
    0410 function popupmenu_desiredpvalCondition_Callback(hObject, eventdata, handles)
    0411 % hObject    handle to popupmenu_desiredpvalCondition (see GCBO)
    0412 % eventdata  reserved - to be defined in a future version of MATLAB
    0413 % handles    structure with handles and user data (see GUIDATA)
    0414
    0415 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_desiredpvalCondition contents as cell array
    0416 %        contents{get(hObject,'Value')} returns selected item from popupmenu_desiredpvalCondition
    0417
    0418
    0419 % --- Executes during object creation, after setting all properties.
    0420 function popupmenu_desiredpvalCondition_CreateFcn(hObject, eventdata, handles)
    0421 % hObject    handle to popupmenu_desiredpvalCondition (see GCBO)
    0422 % eventdata  reserved - to be defined in a future version of MATLAB
    0423 % handles    empty - handles not created until after all CreateFcns called
    0424
    0425 % Hint: popupmenu controls usually have a white background on Windows.
    0426 %       See ISPC and COMPUTER.
    0427 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0428     set(hObject,'BackgroundColor','white');
    0429 end
    0430
    0431
    0432 % --- Executes on selection change in popupmenu_tails.
    0433 function popupmenu_tails_Callback(hObject, eventdata, handles)
    0434 % hObject    handle to popupmenu_tails (see GCBO)
    0435 % eventdata  reserved - to be defined in a future version of MATLAB
    0436 % handles    structure with handles and user data (see GUIDATA)
    0437
    0438 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_tails contents as cell array
    0439 %        contents{get(hObject,'Value')} returns selected item from popupmenu_tails
    0440
    0441
    0442 % --- Executes during object creation, after setting all properties.
    0443 function popupmenu_tails_CreateFcn(hObject, eventdata, handles)
    0444 % hObject    handle to popupmenu_tails (see GCBO)
    0445 % eventdata  reserved - to be defined in a future version of MATLAB
    0446 % handles    empty - handles not created until after all CreateFcns called
    0447
    0448 % Hint: popupmenu controls usually have a white background on Windows.
    0449 %       See ISPC and COMPUTER.
    0450 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0451     set(hObject,'BackgroundColor','white');
    0452 end
    0453
    0454
    0455 % --- Executes on button press in pushbutton_createSoftMetaConstraint.
    0456 function pushbutton_createSoftMetaConstraint_Callback(hObject, eventdata, handles)
    0457 % hObject    handle to pushbutton_createSoftMetaConstraint (see GCBO)
    0458 % eventdata  reserved - to be defined in a future version of MATLAB
    0459 % handles    structure with handles and user data (see GUIDATA)
    0460
    0461     type = getdfName(handles.popupmenu_type,'type');
    0462
    0463     mainWindowHandle = sos_gui;
    0464     mainWindowData = guidata(mainWindowHandle);
    0465
    0466     sosObjName = getdfName(mainWindowData.popupmenu_SOSSelector,'SOS');
    0467
    0468     if isempty(sosObjName) == 0
    0469         % we have a valid SOS object to add the test to
    0470         % validate all of the parameters for the test
    0471         create = validate_name(handles);
    0472         name = get(handles.edit_name,'String');
    0473
    0474         if create == true
    0475             constraint1 = getdfName(handles.popupmenu_constraint1Selector,'constraint 1');
    0476
    0477             if isempty(constraint1) == 0
    0478                 constraint2 = getdfName(handles.popupmenu_constraint2Selector','constraint 2');
    0479
    0480                 if isempty(constraint2) == 0
    0481                    create = validate_value(handles);
    0482
    0483                    if create == true
    0484                        % all values have passed.  Can execute the command
    0485                         value = get(handles.edit_value,'String');
    0486
    0487                         % check weight
    0488                         create = validate_weight(handles);
    0489                         if create == true
    0490                             weight = get(handles.edit_weight,'String');
    0491
    0492                             create = validate_exp(handles);
    0493                             if create == true
    0494                                 exp = get (handles.edit_exp,'String');
    0495
    0496                                     %all functions passed, retrieve the
    0497                                     %hard-coded popup menu data
    0498
    0499                                     fnc = getdfName(handles.popupmenu_fncSelector,...
    0500                                                     'fnc');
    0501
    0502                                     %all of the other options are in drop-down
    0503                                     %menus and as such necessarily will pass.
    0504                                     %run the command.
    0505
    0506                                     command = [name,'=',sosObjName,'.addConstraint(',...
    0507                                         '''name'',''',name,''',',...
    0508                                         '''constraintType'',''',type,''',',...
    0509                                         '''fnc'',''',fnc,''',',...
    0510                                         '''constraint1'',',constraint1,',',...
    0511                                         '''constraint2'',',constraint2,',',...
    0512                                         '''constraint2costScale'',',value,',',...
    0513                                         '''weight'',',weight,','...
    0514                                         '''exponent'',',exp,');',...
    0515                                         ];
    0516
    0517
    0518                                     verbosePrint(['Executing command: ','''',command,''''],'createSoftMetaConstraint_Dialog_create');
    0519                                     evalin('base',command);
    0520                                     close(handles.figure_createSoftMetaConstraint_Dialog);
    0521                             end
    0522                         end
    0523                    end
    0524                 end
    0525             end
    0526         end
    0527     end
    0528
    0529
    0530 % --- Executes on selection change in popupmenu_type.
    0531 function popupmenu_type_Callback(hObject, eventdata, handles)
    0532 % hObject    handle to popupmenu_type (see GCBO)
    0533 % eventdata  reserved - to be defined in a future version of MATLAB
    0534 % handles    structure with handles and user data (see GUIDATA)
    0535
    0536 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_type contents as cell array
    0537 %        contents{get(hObject,'Value')} returns selected item from popupmenu_type
    0538
    0539
    0540 % --- Executes during object creation, after setting all properties.
    0541 function popupmenu_type_CreateFcn(hObject, eventdata, handles)
    0542 % hObject    handle to popupmenu_type (see GCBO)
    0543 % eventdata  reserved - to be defined in a future version of MATLAB
    0544 % handles    empty - handles not created until after all CreateFcns called
    0545
    0546 % Hint: popupmenu controls usually have a white background on Windows.
    0547 %       See ISPC and COMPUTER.
    0548 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0549     set(hObject,'BackgroundColor','white');
    0550 end
    0551
    0552
    0553 % --- Executes on selection change in popupmenu_fncSelector.
    0554 function popupmenu_fncSelector_Callback(hObject, eventdata, handles)
    0555 % hObject    handle to popupmenu_fncSelector (see GCBO)
    0556 % eventdata  reserved - to be defined in a future version of MATLAB
    0557 % handles    structure with handles and user data (see GUIDATA)
    0558
    0559 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_fncSelector contents as cell array
    0560 %        contents{get(hObject,'Value')} returns selected item from popupmenu_fncSelector
    0561
    0562
    0563 % --- Executes during object creation, after setting all properties.
    0564 function popupmenu_fncSelector_CreateFcn(hObject, eventdata, handles)
    0565 % hObject    handle to popupmenu_fncSelector (see GCBO)
    0566 % eventdata  reserved - to be defined in a future version of MATLAB
    0567 % handles    empty - handles not created until after all CreateFcns called
    0568
    0569 % Hint: popupmenu controls usually have a white background on Windows.
    0570 %       See ISPC and COMPUTER.
    0571 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0572     set(hObject,'BackgroundColor','white');
    0573 end
    0574
    0575
    0576
    0577 function edit_weight_Callback(hObject, eventdata, handles)
    0578 % hObject    handle to edit_weight (see GCBO)
    0579 % eventdata  reserved - to be defined in a future version of MATLAB
    0580 % handles    structure with handles and user data (see GUIDATA)
    0581
    0582 % Hints: get(hObject,'String') returns contents of edit_weight as text
    0583 %        str2double(get(hObject,'String')) returns contents of edit_weight as a double
    0584     validate_weight(handles);
    0585
    0586
    0587 function flag = validate_weight(handles)
    0588      str = get(handles.edit_weight,'String');
    0589
    0590     errmsg = 'Weight must be a number';
    0591     errtitle = 'Invalid weight!';
    0592
    0593     flag = validateRealNumber(str,errmsg,errtitle);
    0594
    0595 % --- Executes during object creation, after setting all properties.
    0596 function edit_weight_CreateFcn(hObject, eventdata, handles)
    0597 % hObject    handle to edit_weight (see GCBO)
    0598 % eventdata  reserved - to be defined in a future version of MATLAB
    0599 % handles    empty - handles not created until after all CreateFcns called
    0600
    0601 % Hint: edit controls usually have a white background on Windows.
    0602 %       See ISPC and COMPUTER.
    0603 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0604     set(hObject,'BackgroundColor','white');
    0605 end
    0606
    0607
    0608
    0609 function edit_exp_Callback(hObject, eventdata, handles)
    0610 % hObject    handle to edit_exp (see GCBO)
    0611 % eventdata  reserved - to be defined in a future version of MATLAB
    0612 % handles    structure with handles and user data (see GUIDATA)
    0613
    0614 % Hints: get(hObject,'String') returns contents of edit_exp as text
    0615 %        str2double(get(hObject,'String')) returns contents of edit_exp as a double
    0616     validate_exp(handles);
    0617
    0618
    0619 function flag = validate_exp(handles)
    0620      str = get(handles.edit_exp,'String');
    0621
    0622     errmsg = 'Exponent must be a number';
    0623     errtitle = 'Invalid exponent!';
    0624
    0625     flag = validateRealNumber(str,errmsg,errtitle);
    0626
    0627 % --- Executes during object creation, after setting all properties.
    0628 function edit_exp_CreateFcn(hObject, eventdata, handles)
    0629 % hObject    handle to edit_exp (see GCBO)
    0630 % eventdata  reserved - to be defined in a future version of MATLAB
    0631 % handles    empty - handles not created until after all CreateFcns called
    0632
    0633 % Hint: edit controls usually have a white background on Windows.
    0634 %       See ISPC and COMPUTER.
    0635 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0636     set(hObject,'BackgroundColor','white');
    0637 end
    0638
    0639
    0640 % --- Executes on selection change in popupmenu_statSelector.
    0641 function popupmenu_statSelector_Callback(hObject, eventdata, handles)
    0642 % hObject    handle to popupmenu_statSelector (see GCBO)
    0643 % eventdata  reserved - to be defined in a future version of MATLAB
    0644 % handles    structure with handles and user data (see GUIDATA)
    0645
    0646 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_statSelector contents as cell array
    0647 %        contents{get(hObject,'Value')} returns selected item from popupmenu_statSelector
    0648
    0649
    0650 % --- Executes during object creation, after setting all properties.
    0651 function popupmenu_statSelector_CreateFcn(hObject, eventdata, handles)
    0652 % hObject    handle to popupmenu_statSelector (see GCBO)
    0653 % eventdata  reserved - to be defined in a future version of MATLAB
    0654 % handles    empty - handles not created until after all CreateFcns called
    0655
    0656 % Hint: popupmenu controls usually have a white background on Windows.
    0657 %       See ISPC and COMPUTER.
    0658 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0659     set(hObject,'BackgroundColor','white');
    0660 end
    0661
    0662
    0663 % --- Executes on selection change in popupmenu_constraint2Selector.
    0664 function popupmenu_constraint2Selector_Callback(hObject, eventdata, handles)
    0665 % hObject    handle to popupmenu_constraint2Selector (see GCBO)
    0666 % eventdata  reserved - to be defined in a future version of MATLAB
    0667 % handles    structure with handles and user data (see GUIDATA)
    0668
    0669 % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu_constraint2Selector contents as cell array
    0670 %        contents{get(hObject,'Value')} returns selected item from popupmenu_constraint2Selector
    0671     populateConstraintList(hObject);
    0672
    0673 % --- Executes during object creation, after setting all properties.
    0674 function popupmenu_constraint2Selector_CreateFcn(hObject, eventdata, handles)
    0675 % hObject    handle to popupmenu_constraint2Selector (see GCBO)
    0676 % eventdata  reserved - to be defined in a future version of MATLAB
    0677 % handles    empty - handles not created until after all CreateFcns called
    0678
    0679 % Hint: popupmenu controls usually have a white background on Windows.
    0680 %       See ISPC and COMPUTER.
    0681 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    0682     set(hObject,'BackgroundColor','white');
    0683 end
    0684
    0685
    0686 % --- Executes on button press in pushbutton_refreshSample2List.
    0687 function pushbutton7_Callback(hObject, eventdata, handles)
    0688 % hObject    handle to pushbutton_refreshSample2List (see GCBO)
    0689 % eventdata  reserved - to be defined in a future version of MATLAB
    0690 % handles    structure with handles and user data (see GUIDATA)
    0691
    0692
    0693 % --- Executes on key press with focus on popupmenu_constraint2Selector and none of its controls.
    0694 function popupmenu_constraint2Selector_KeyPressFcn(hObject, eventdata, handles)
    0695 % hObject    handle to popupmenu_constraint2Selector (see GCBO)
    0696 % eventdata  structure with the following fields (see UICONTROL)
    0697 %    Key: name of the key that was pressed, in lower case
    0698 %    Character: character interpretation of the key(s) that was pressed
    0699 %    Modifier: name(s) of the modifier key(s) (i.e., control, shift) pressed
    0700 % handles    structure with handles and user data (see GUIDATA)
    0701
    0702
    0703 % --- If Enable == 'on', executes on mouse press in 5 pixel border.
    0704 % --- Otherwise, executes on mouse press in 5 pixel border or over popupmenu_constraint2Selector.
    0705 function popupmenu_constraint2Selector_ButtonDownFcn(hObject, eventdata, handles)
    0706 % hObject    handle to popupmenu_constraint2Selector (see GCBO)
    0707 % eventdata  reserved - to be defined in a future version of MATLAB
    0708 % handles    structure with handles and user data (see GUIDATA)
    0709 populateConstraintList(hObject);