Example #1
0
        // Avoid extra tests by enabling only the buttons that can be used
        private void SetButtonEnables()
        {
            int  addr;
            int  len;
            bool isConnected = MB == null ? false : MB.IsConnected;
            bool comIsOn     = isConnected && MB.ComIsOn;
            bool appIsOpen   = twinApp != null;

            cmdConnect.Enabled    = !isConnected;
            cmdDisconnect.Enabled = isConnected;
            cmdComOff.Enabled     = comIsOn;
            cmdComOn.Enabled      = isConnected && !comIsOn;
            cmdStartUp.Enabled    = comIsOn;
            cmdShutDown.Enabled   = comIsOn;
            cmdReady.Enabled      = comIsOn;
            cmdStandby.Enabled    = comIsOn;
            cmdGetStatus.Enabled  = isConnected;
            cmdReset.Enabled      = comIsOn;

            cmdReadData.Enabled = comIsOn &&
                                  int.TryParse(txtDataAddress.Text, NumberStyles.HexNumber, null, out addr) &&
                                  int.TryParse(txtDataLength.Text, out len);
            cmdWriteData.Enabled = comIsOn &&
                                   int.TryParse(txtDataAddress.Text, NumberStyles.HexNumber, null, out addr) &&
                                   int.TryParse(txtDataLength.Text, out len) &&
                                   txtData.Text.Length > 0;

            cmdRetrieve.Enabled = comIsOn;
            cmdSaveAs.Enabled   = txtIndentedView.Text.Length > 0;
            cmdOpen.Enabled     = true; // For now
            cmdSend.Enabled     = comIsOn && txtIndentedView.Text.Length > 0;

            cmdExperiment.Enabled = comIsOn;
            chkTwinNozzle.Enabled = !isConnected;

            cmdErrorRefresh.Enabled = comIsOn;
            cmdErrorClear.Enabled   = comIsOn;

            cmdGroupRefresh.Enabled = comIsOn;

            cmdMessageAdd.Enabled     = comIsOn && cbMessageNumber.SelectedIndex >= 0 && txtMessageName.Text.Length > 0;
            cmdMessageDelete.Enabled  = comIsOn && dgMessages.Rows.Count > 0 && dgMessages.SelectedRows.Count == 1;
            cmdMessageRefresh.Enabled = comIsOn;
            cmdMessageLoad.Enabled    = comIsOn && dgMessages.Rows.Count > 0 && dgMessages.SelectedRows.Count == 1;
            //cmdMessageAdd.Enabled = false;
            //cmdMessageDelete.Enabled = false;

            up.SetButtonEnables(comIsOn);
        }