📄 vojxtadialogview.java
字号:
} /** * UI action denoting user has chosen to persist this audio session. User * Chooses a directoy to save the session into. This is just a skeleton. * None of the save session logic has been implemented. */ private void localActionPersistSession(boolean save) { if (save == true) { JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setDialogTitle("Choose Audio Logging Directory"); int returnVal = chooser.showOpenDialog(this.getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { if (chooser.getSelectedFile() != null) { if (chooser.getSelectedFile().isDirectory()) { if (Logging.SHOW_INFO && LOG.isLoggable(Level.INFO)) { sessionLogFileNameLabel.setText( chooser.getSelectedFile().getAbsolutePath() + File.separator + DEFAULT_SESSION_FILE_NAME); } getCallControl().setPersistSession(true, chooser.getSelectedFile().getAbsolutePath() + File.pathSeparator + DEFAULT_SESSION_FILE_NAME); } } } } else { getCallControl().setPersistSession(false, null); } } /** * UI action denoting the user wants to start the call. This action is for * two actions. Place call for the user who initiated the session and * Accept call for the user on the other end. CallControl then performs the * protocol semantics to make the call active. */ private void localActionStartCall() { EventQueue.invokeLater(new Runnable() { public void run() { startCallButton.setEnabled(false); } }); if (isInitiatedLocally()) { getCallControl().viewActionPlaceCall(); } else { getCallControl().viewActionAcceptCall(); } } /** * UI action. User wishes to place the call on hold. The same button is * used for Hold and Resume depending on the call state */ private void localActionHoldCall() { EventQueue.invokeLater(new Runnable() { public void run() { holdCallButton.setEnabled(false); } }); if (holdCallButton.getText().equals("Resume Call")) { getCallControl().viewActionResumeCall(); } else if (holdCallButton.getText().equals("Hold Call")) { getCallControl().viewActionHoldCall(); } } /** * UI action. user wishes to end call. */ private void localActionEndCall() { EventQueue.invokeLater(new Runnable() { public void run() { endCallButton.setEnabled(false); holdCallButton.setEnabled(false); } }); getCallControl().viewActionHangupCall(); } /** * Signals the app view we are done with this dialogpanel and to remove. If * Dismiss is invoked prior to end call attempt to go down as graceful as * possible alerting the remote peer(s). */ private void localActionDismiss() { if (this.getCallControl().getProtocolState() != VoJxtaCallControl.SESSION_VOJXTA_DISCONNECTED) { getCallControl().destroy(); } this.view.removeDialog(this.vojxtaDialog); } /** * Returns the call COntrol object */ private VoJxtaCallControl getCallControl() { return this.callControl; } /** * Setts the call control object */ private void setCallControl(VoJxtaCallControl callControl) { this.callControl = callControl; } /** * updates the UI status label. usually due to protocol changes */ private void updateStatusView(final String status) { if (Logging.SHOW_INFO && LOG.isLoggable(Level.INFO)) { //LOG.info ("status = "+status); } EventQueue.invokeLater(new Runnable() { public void run() { statusLabel.setText(status); } }); } /** * This method is the event signaling mechanism from call control. Events * received by the remote peer and our own call control are registerd here. * UI updates and button states can be changed based on protocol state. */ public void protocolStateChanged(int protocolState) { if (protocolState == VoJxtaCallControl.SESSION_VOJXTA_INVITE_REQUEST_RECEIVED) { EventQueue.invokeLater(new Runnable() { public void run() { startCallButton.setEnabled(true); } }); } else if (protocolState == VoJxtaCallControl.SESSION_VOJXTA_START_REQUEST_SENT) { } else if (protocolState == VoJxtaCallControl.SESSION_VOJXTA_INCALL) { updateThread.start(); EventQueue.invokeLater(new Runnable() { public void run() { if (getCallControl().isSpeakerGainSupported()) { speakerVolumeSlider.setEnabled(true); speakerVolumeSlider.setMinimum((int) getCallControl().getSpeakerMinGain()); speakerVolumeSlider.setMaximum((int) getCallControl().getSpeakerMaxGain()); speakerVolumeSlider.setValue((int) getCallControl().getSpeakerGainValue()); speakerLabel.setText("SPKR (" + getCallControl().getSpeakerGainUnits() + ")"); } if (getCallControl().isMicGainSupported()) { micVolumeSlider.setEnabled(true); micVolumeSlider.setMinimum((int) getCallControl().getMicMinGain()); micVolumeSlider.setMaximum((int) getCallControl().getMicMaxGain()); micVolumeSlider.setValue((int) getCallControl().getMicGainValue()); micLabel.setText("MIC (" + getCallControl().getMicGainUnits() + ")"); } messageLabel.setText( //STRINGS.getString ("label.vojxta.connectedto" + " " + "Connected to " + getCallControl().getOriginator()); holdCallButton.setEnabled(true); endCallButton.setEnabled(true); } }); } else if (protocolState == VoJxtaCallControl.SESSION_VOJXTA_HOLD_REQUEST_RECEIVED) { EventQueue.invokeLater(new Runnable() { public void run() { holdCallButton.setEnabled(false); } }); } else if (protocolState == VoJxtaCallControl.SESSION_VOJXTA_HOLD_ACCEPT_RECEIVED) { EventQueue.invokeLater(new Runnable() { public void run() { holdCallButton.setText("Resume Call"); holdCallButton.setEnabled(true); } }); } else if (protocolState == VoJxtaCallControl.SESSION_VOJXTA_RESUME_REQUEST_RECEIVED) { EventQueue.invokeLater(new Runnable() { public void run() { holdCallButton.setEnabled(true); } }); } else if (protocolState == VoJxtaCallControl.SESSION_VOJXTA_RESUME_ACCEPT_RECEIVED) { EventQueue.invokeLater(new Runnable() { public void run() { holdCallButton.setText("Hold Call"); holdCallButton.setEnabled(true); } }); } else if (protocolState == VoJxtaCallControl.SESSION_VOJXTA_HANGUP_REQUEST_SENT) { if (updateThread != null && updateThread.isRunning()) { updateThread.stopThread(); } } else if (protocolState == VoJxtaCallControl.SESSION_VOJXTA_HANGUP_REQUEST_RECEIVED) { EventQueue.invokeLater(new Runnable() { public void run() { holdCallButton.setEnabled(false); endCallButton.setEnabled(false); } }); if (updateThread != null && updateThread.isRunning()) { updateThread.stopThread(); } } else if (protocolState == VoJxtaCallControl.SESSION_VOJXTA_DISCONNECT_REQUEST_RECEIVED) { EventQueue.invokeLater(new Runnable() { public void run() { holdCallButton.setEnabled(false); endCallButton.setEnabled(false); } }); if (updateThread != null && updateThread.isRunning()) { updateThread.stopThread(); } } else if (protocolState == VoJxtaCallControl.SESSION_VOJXTA_DISCONNECTED) { if (updateThread != null && updateThread.isRunning()) { updateThread.stopThread(); } setInSession(false); setInitiatedLocally(false); EventQueue.invokeLater(new Runnable() { public void run() { messageLabel.setText(STRINGS.getString("label.vojxta.sessionended")); holdCallButton.setEnabled(false); endCallButton.setEnabled(false); dismissButton.setEnabled(true); } }); this.getCallControl().destroy(); } } /** * left over for chaging the status message on the panel... will be removed */ public void sessionStateChanged(int sessionState) { if (sessionState == VoJxtaCallControl.SESSION_VOJXTA_DISCONNECTED) { updateStatusView(this.DISPLAY_SESSION_VOJXTA_DISCONNECTED); } else if (sessionState == VoJxtaCallControl.SESSION_VOJXTA_DISCONNECTING) { updateStatusView(this.DISPLAY_SESSION_VOJXTA_DISCONNECTING); } else if (sessionState == VoJxtaCallControl.SESSION_VOJXTA_ENDED) { updateStatusView(this.DISPLAY_SESSION_VOJXTA_ENDED); } else if (sessionState == VoJxtaCallControl.SESSION_VOJXTA_ENDING) { updateStatusView(this.DISPLAY_SESSION_VOJXTA_ENDING); } else if (sessionState == VoJxtaCallControl.SESSION_VOJXTA_INCALL) { updateStatusView(this.DISPLAY_SESSION_VOJXTA_INCALL); } else if (sessionState == VoJxtaCallControl.SESSION_VOJXTA_HOLDING) { updateStatusView(this.DISPLAY_SESSION_VOJXTA_HOLDING); } else if (sessionState == VoJxtaCallControl.SESSION_VOJXTA_STARTED) { updateStatusView(this.DISPLAY_SESSION_VOJXTA_STARTED); } else if (sessionState == VoJxtaCallControl.SESSION_VOJXTA_STARTING) { updateStatusView(this.DISPLAY_SESSION_VOJXTA_STARTING); } else if (sessionState == VoJxtaCallControl.SESSION_VOJXTA_CONNECTED) { updateStatusView(this.DISPLAY_SESSION_VOJXTA_CONNECTED); } else if (sessionState == VoJxtaCallControl.SESSION_VOJXTA_CONNECTING) { updateStatusView(this.DISPLAY_SESSION_VOJXTA_CONNECTING); } } /** * Creates the call control panel and sets up the cardlayout. */ private void UI() { cardLayout = new CardLayout(); deckPanel = new JPanel(cardLayout); this.add(deckPanel); JPanel callPanel = new JPanel(); deckPanel.add(callPanel, this.CALL_PANEL); GridBagLayout gbl = new GridBagLayout(); GridBagConstraints gbc = new GridBagConstraints(); callPanel.setLayout(gbl); // add panels to this container JPanel messagePanel = new JPanel(); gbc.fill = gbc.NONE; gbc.anchor = gbc.CENTER; gbc.gridx = 0; gbc.gridy = 0; gbc.insets = panelInsets; gbc.weightx = 1; gbc.weighty = 1; gbc.gridheight = 1; gbc.gridwidth = 3; messagePanel.setBorder(null); gbl.setConstraints(messagePanel, gbc); callPanel.add(messagePanel); JPanel statusPanel = new JPanel(); gbc.fill = gbc.NONE; gbc.anchor = gbc.CENTER; gbc.gridx = 1; gbc.gridy = 2; gbc.insets = panelInsets; gbc.weightx = 1; gbc.weighty = 1; gbc.gridheight = 1; gbc.gridwidth = 1; statusPanel.setBorder(null); gbl.setConstraints(statusPanel, gbc); callPanel.add(statusPanel); JPanel micPanel = new JPanel(); gbc.fill = gbc.NONE; gbc.anchor = gbc.CENTER; gbc.gridx = 0; gbc.gridy = 1; gbc.insets = panelInsets; gbc.weightx = 1; gbc.weighty = 1; gbc.gridheight = 2; gbc.gridwidth = 1; micPanel.setBorder(null); gbl.setConstraints(micPanel, gbc); callPanel.add(micPanel); JPanel speakerPanel = new JPanel(); gbc.fill = gbc.NONE; gbc.anchor = gbc.CENTER; gbc.gridx = 2; gbc.gridy = 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -