📄 clientui.java
字号:
*/
private void importURLorFile() {
uploadBox cDialog = new uploadBox(this);
cDialog.setVisible(true);
cDialog.pack();
int option = cDialog.getOption();
switch (option) {
case 1:
String url = cDialog.getValidatedText();
if ((url != null) && (url != "") && (!url.startsWith("http:"))) {
JOptionPane.showMessageDialog(this, "Invalid URL");
break;
}
client.uploadURL(url);
break;
case 2:
break;
case 3:
String selectedFile = getLocalFile("Select a local file to add to list", FileDialog.LOAD);
if (selectedFile != null)
{
File file = new File(selectedFile);
client.uploadFile(file);
}
break;
}
}
//--------------------------------------------------------------handleAddUser----------------------------
/**
* handleAddUser adds a new user to the system
* @param uP the information about the new user
*/
private void handleAddUser(UserConfig users)
{
chatDisplay.addUser(users.getUserName(), users.getUserCategory());
userListDisplay.displayUserPanel(client.getUsersConfig());
}
//----------------------handleRemoveUser---------------------------
/** handleRemoveUser removs users
*
* @param userName the name to be removed
*/
private void handleRemoveUser(String userName) {
//reset the mic
String speaker = client.getMicLocker();
setSpeaker(speaker);
Hashtable userTable = client.getUsersConfig();
chatDisplay.removeUser(userName);
userListDisplay.displayUserPanel(userTable);
Enumeration e = userTable.elements();
while (e.hasMoreElements()) {
UserConfig uConfig = (UserConfig) e.nextElement();
if (uConfig.getUserCategory() == Constants.PRESENTER) {
chatDisplay.addPresenter(uConfig.getUserName());
break;
}
}
if (myCategory != Constants.PRESENTER) {
if (((UserConfig)userTable.get(myName)).getUserCategory() == Constants.PRESENTER) {
myCategory = Constants.PRESENTER;
client.setMyCategory(myCategory);
changePresenterUI();
}
}
}// end of handleRemoveUser()
//-------------------------------------------------------changePresneterUI------------------------
/**
* changePresenterUI when the user change from student to presenter
*/
private void changePresenterUI() {
//update main MenuBar, will add after add the menubar
setPresenterMenu();
//update mytoolBar
mytoolBar.changePresenterUI(isInSession());
this.lowHandButton = mytoolBar.lowHandButton;
this.lowHandButton.addActionListener(this);
this.clearYesNoButton = mytoolBar.clearYesNoButton;
this.clearYesNoButton.addActionListener(this);
this.giveMicToNextButton = mytoolBar.giveMicToNextButton;
this.giveMicToNextButton.addActionListener(this);
this.sessionInButton = mytoolBar.inSessionButton;
this.sessionInButton.addActionListener(this);
mytoolBar.add(speakerButton);
//LINLIN
String speaker = client.getMicLocker();
setSpeaker(speaker);
//LINLIN
//update contentManager
contentManager.enableContentManager(true, myCategory);
//update chatDisplay
chatDisplay.setPresenter();
}
//------------------------------------------loginUser------------------------
/**
* loginUser log in a user
*/
private void loginUser()
{
// Get these parameters from a window
LoginDialog loginDial = new LoginDialog(this);
loginDial.pack();
int noOfTries = 0;
int result;
do
{
loginDial.setVisible(true);
myName = loginDial.getLoginName();
if ((myName != null) && (myName != ""))
{
myPassword = loginDial.getPassword();
myCategory = loginDial.getCategory();
}
else
{
System.exit(-1);
}
result = client.loginUser(myName, myPassword, myCategory);
noOfTries++;
if (result == Constants.FAIL_LOGIN)
{
showMessage("Login Failed for try number " + noOfTries);
}
if (noOfTries == Constants.MAX_LOGIN_TRIES)
{
showMessage("Login Failed for maximum number of tries. Quitting now.");
System.exit(-1);
}
} while (result == Constants.FAIL_LOGIN && noOfTries < Constants.MAX_LOGIN_TRIES);
switch (result) {
case Constants.FAIL_LOGIN:
System.out.println("Unable to login :(");
System.exit(-1);
break;
case Constants.USER:
showMessage("Logged in as a USER.");
myCategory = Constants.USER;
break;
case Constants.PRESENTER:
showMessage("Logged in as a PRESENTER!");
myCategory = Constants.PRESENTER;
break;
}
initComponents ();
chatDisplay.refresh(client.getChatMessages());
Hashtable ht=client.getUsersConfig();
Enumeration e = ht.elements();
while (e.hasMoreElements()){
UserConfig uc=(UserConfig)e.nextElement();
String name=uc.getUserName();
if (!name.equals(myName)){
chatDisplay.addUser(name,uc.getUserCategory());
}
}
Hashtable url=client.getURLTable();
e = url.elements();
while (e.hasMoreElements()){
String u=(String)e.nextElement();
contentManager.addURL(u);
}
if (client.getSessionInfo()) {
handleStartSession();
}
String dispCat = null;
switch (myCategory) {
case Constants.USER:
dispCat = "User: ";
break;
case Constants.PRESENTER:
dispCat = "Presenter: ";
break;
default:
dispCat = "User: ";
break;
}
this.setTitle("Symposium - " + dispCat + myName);
}//end of loginUser()
//-------------------------------------------showMessage--------------------------------
/**
* showMessage shows message
* @param mes the message want to display
*/
private void showMessage(String mes)
{
JOptionPane.showMessageDialog(this, mes);
}
//------------------------------------------isInSession---------------------------
/**
* isInSession checks the session status
* @return true if in session
*/
private boolean isInSession() {
boolean isIn = false;
if (inOutSession.getText().equals("In Session")) {
isIn = true;
}
return isIn;
}
//-------------------------------------------feedbackButtonActionPorfermed---------------------
/** feedbackButtonActionPerformed feedback button action performed,
* for user, display send feedback window
* for presenter, display receive feedback window
* @author Sirong Lin
*/
public void feedbackButtonActionPerformed(/*ActionEvent evt*/) {
JToolBar buttonToolBar = new JToolBar();
buttonToolBar.setFloatable(false);
if (myCategory == Constants.USER) {
feedbackFrame.getContentPane().setLayout(new BorderLayout());
feedbackFrame.getContentPane().add(feedbackWindow, BorderLayout.CENTER);
JButton sendButton = new JButton(" Send ");
sendButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
sendButtonActionPerformed(evt);
}
});
buttonToolBar.add(sendButton);
JButton cancelButton = new JButton(" Cancel ");
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});
buttonToolBar.add(cancelButton);
feedbackFrame.getContentPane().add(buttonToolBar, BorderLayout.SOUTH);
feedbackFrame.pack();
feedbackFrame.setLocation(480,350);
feedbackFrame.setVisible(true);
}
else if (myCategory == Constants.PRESENTER) {
receiveFeedbackFrame.getContentPane().setLayout(new java.awt.BorderLayout());
receiveFeedbackFrame.getContentPane().add(feedResultWindow, BorderLayout.CENTER);
int feedbackSum[] = client.receiveFeedback();
feedResultWindow.setSum(feedbackSum);
JButton okButton = new JButton(" OK ");
okButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
okButtonActionPerformed(evt);
}
});
buttonToolBar.add(okButton);
JButton clearButton = new JButton(" Clear All ");
clearButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
clearButtonActionPerformed(evt);
}
});
buttonToolBar.add(clearButton);
receiveFeedbackFrame.getContentPane().add(buttonToolBar, BorderLayout.SOUTH);
receiveFeedbackFrame.setLocation(480,350);
receiveFeedbackFrame.pack();
receiveFeedbackFrame.setVisible(true);
}
}//end of feedbackButtonActionPerformed
/** for student, send feedback button action performed, send feedback message to server */
public void sendButtonActionPerformed(ActionEvent evt) {
int pacing = feedbackWindow.getPacing();
int compre = feedbackWindow.getComprehension();
client.sendFeedback(pacing, compre);
feedbackFrame.setVisible(false);
}
/** for student, cancel send feedback window */
public void cancelButtonActionPerformed(ActionEvent evt) {
feedbackFrame.setVisible(false);
}
/** for presenter, receive feedback window okButton action performed */
public void okButtonActionPerformed(ActionEvent evt) {
receiveFeedbackFrame.setVisible(false);
}
/** for presenter, when clear Button action performed */
private void clearButtonActionPerformed(ActionEvent evt) {
//set all variables to 0:
String initStr = "0";
feedResultWindow.clearFeedback(initStr);
///inform server
client.clearFeedback();
}
//--------------------handleSayYes--------------------------------
/** handlesayYes reponses
*
* @param usersConfig the list of all users and their attributes stored in a hashtable
*/
private void handleSayYes(Hashtable usersConfig) {
userListDisplay.displayUserPanel(usersConfig);
}
//---------------------handleSayNo----------------------------
/** handles say No reponses
*
* @param usersConfig the list of all users and their attributes stored in a hashtable
*/
private void handleSayNo(Hashtable usersConfig) {
userListDisplay.displayUserPanel(usersConfig);
}
//------------------------ handleReceiveLockMic -------------------------
/**
* handleReceiveLockMicv handles receive lock mic
*/
public void handleReceiveLockMic(Hashtable usersConfig) {
userListDisplay.displayUserPanel(usersConfig);
String speaker = client.getMicLocker();
setSpeaker(speaker);
if (!userListDisplay.getMicAvailable()) {
if (voiceChatButton.isSelected()) {
voiceChatButton.setSelected(false);
voiceChatButton.setBorder(mytoolBar.compoundBorder);
}
voiceChatButton.setIcon(new javax.swing.ImageIcon(
Toolkit.getDefaultToolkit().getImage(getClass().getResource("icon1/voice_gray.gif"))));
}
else {
voiceChatButton.setIcon(new javax.swing.ImageIcon(
Toolkit.getDefaultToolkit().getImage(getClass().getResource("icon1/voice.gif"))));
}
}
public void handleReceiveUnLockMic(Hashtable usersConfig) {
userListDisplay.displayUserPanel(usersConfig);
String speaker = client.getMicLocker();
setSpeaker(speaker);
if (myCategory == Constants.PRESENTER) {
if (!voiceChatButton.isSelected()) {
voiceChatButton.setIcon(new javax.swing.ImageIcon(
Toolkit.getDefaultToolkit().getImage(getClass().getResource("icon1/voice.gif"))));
}
}
else {//USER
if (!userListDisplay.getMicAvailable()) {
voiceChatButton.setIcon(new javax.swing.ImageIcon(
Toolkit.getDefaultToolkit().getImage(getClass().getResource("icon1/voice_gray.gif"))));
}
else {
voiceChatButton.setIcon(new javax.swing.ImageIcon(
Toolkit.getDefaultToolkit().getImage(getClass().getResource("icon1/voice.gif"))));
}
}
}
//---------------------- handleRaiseHand -------------------------
/* handleRaiseHand handles raising hand
* @param usersConfig the list of all users and their attributes stored in a hashtable
*/
private void handleRaiseHand(Hashtable users) {
userListDisplay.displayUserPanel(users);
}
//----------------------------- handleLowerHand --------------------
/* This method handles ( lower hand )
* @param usersConfig the list of all users and their attributes stored in a hashtable
*/
private void handleLowerHand (Hashtable usersConfig) {
userListDisplay.displayUserPanel(usersConfig);
}
//------------------------handleLowerAllHands----------------------------
/* handleLowerAllHands This method handles requests for talking ( lower all hands by presenter )
* @param usersConfig the list of all users and their attributes stored in a hashtable
*/
private void handleLowerAllHands(Hashtable usersConfig) {
userListDisplay.displayUserPanel(usersConfig);
if (myCategory == Constants.USER) {
if (handButton.isSelected()) {
handButton.setSelected(false);
handButton.setBorder(mytoolBar.compoundBorder);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -