⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientui.java

📁 一个实现网络会议的软件.包含三个包.其中一个包需JMF的支持.
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
 */
    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 + -