public void updateInfo(object.GameObject in) {
		nameLabel.setVisible(false);
		nameLabel.setText("Nome: " + in.getName());
		nameLabel.setVisible(true);
		
		openLabel.setVisible(false);
		openLabel.setText("");
		onLabel.setVisible(false);
		onLabel.setText("");
		locationLabel.setVisible(false);
		locationLabel.setText("");
		variousLabel.setVisible(false);
		variousLabel.setText("");
		
		if (in instanceof object.thing.Openable)
			openLabel.setText(((object.thing.Openable) in).getState() 
					? "Stato: Aperto" : "Stato: Chiuso");
			openLabel.validate();
			openLabel.setVisible(true);
			
		if (in instanceof object.thing.Turnable) {
			onLabel.setText(((object.thing.Turnable) in).getState()
					? "Stato: Acceso" : "Stato: Spento");
			onLabel.validate();
			onLabel.setVisible(true);
		}
		
		if (in instanceof object.thing.Through) {
			locationLabel.setText("Tra: " + ((object.thing.Through) in).linkString());
			locationLabel.validate();
			locationLabel.setVisible(true);
		}
		
		if (in instanceof object.thing.Readable) {
			variousLabel.setText(((object.thing.Readable) in).letto()
					? "Stato: Letto" : "Stato: Non Letto");
			variousLabel.validate();
			variousLabel.setVisible(true);
		}
		
		else if (in instanceof object.thing.Through) {
			variousLabel.setText(((object.thing.Through) in).isLocked()
					? "Stato: Chiuso a chiave" : "Stato: NON chiuso a chiave");
			variousLabel.validate();
			variousLabel.setVisible(true);
		}
		
		this.revalidate();
		Singleton.getFrame().pack();
	}