updateComponents(true, true, true);
updateComponents(true, ! de.getDocument().equals(numField.getDocument()), true);
	public void createGUI()	{		mainWindow = createBaseWindow(this);		mainWindow.setTitle(this.getDescription());				JPanel entryPanel = new JPanel();		entryPanel.setLayout(				new BoxLayout(entryPanel, BoxLayout.Y_AXIS));				DocumentListener listener = new DocumentListener()		{	        public void changedUpdate(DocumentEvent de)	        {	        	if (!muteEvents	        			&& (numField.getText().length() > 0)	        			&& (entryNumField.getText().length() > 0)						&& (areaXField.getText().length() > 0)						&& (areaYField.getText().length() > 0))	        		updateComponents(true, true, true);	        }	        public void insertUpdate(DocumentEvent de)	        {	            changedUpdate(de);	        }	        public void removeUpdate(DocumentEvent de)	        {	            changedUpdate(de);	        }		};				JPanel entryLoc = new JPanel();		areaXField = HackModule.createSizedJTextField(2, true);		areaXField.getDocument().addDocumentListener(listener);		entryLoc.add(HackModule.getLabeledComponent("Area X: ", areaXField));		areaYField = HackModule.createSizedJTextField(2, true);		areaYField.getDocument().addDocumentListener(listener);		entryLoc.add(HackModule.getLabeledComponent("Area Y: ", areaYField));		entryNumField = HackModule.createSizedJTextField(3, true);		entryNumField.getDocument().addDocumentListener(listener);		entryLoc.add(HackModule.getLabeledComponent("Num: ", entryNumField));		entryPanel.add(entryLoc);				ropeCheck = new JCheckBox();		entryPanel.add(HackModule.getLabeledComponent("Rope: ", ropeCheck));				dirClimbBox = new JComboBox(climbDirections);		entryPanel.add(HackModule.getLabeledComponent("Escalator/Stair Direction: ", dirClimbBox));				numField = HackModule.createSizedJTextField(5, true);		numField.getDocument().addDocumentListener(listener);		entryPanel.add(				HackModule.getLabeledComponent(						"Destination: ", numField));				typeBox = new JComboBox(typeNames);		typeBox.addActionListener(this);		entryPanel.add(				HackModule.getLabeledComponent(						"Type: ", typeBox));				JPanel destPanel = new JPanel();		destPanel.setLayout(				new BoxLayout(destPanel, BoxLayout.Y_AXIS));				typeDestBox = new JComboBox(typeDestNames);		typeDestBox.addActionListener(this);		destPanel.add(				HackModule.getLabeledComponent(						"Type: ", typeDestBox));				ptrField = HackModule.createSizedJTextField(6, false);		destPanel.add(				HackModule.getLabeledComponent(						"Pointer: ", ptrField));				flagField = HackModule.createSizedJTextField(4, false);		destPanel.add(				HackModule.getLabeledComponent(						"Event flag: ", flagField));				reverseCheck = new JCheckBox();		destPanel.add(				HackModule.getLabeledComponent(						"Reverse event flag effect: ",						reverseCheck));				JPanel buttonPanel = new JPanel();		setXYButton = new JButton("Set X&Y using map");		setXYButton.addActionListener(this);		buttonPanel.add(setXYButton);		destPanel.add(buttonPanel);				destPanel.add(				HackModule.getLabeledComponent(						"X: ", destPreview.getXField()));				destPanel.add(				HackModule.getLabeledComponent(						"Y: ", destPreview.getYField()));				dirBox = new JComboBox(new String[] {				"Down", "Up", "Right", "Left"		});		destPanel.add(				HackModule.getLabeledComponent(						"Direction:  ", dirBox));				styleBox = new JComboBox(TeleportTableEditor.warpStyleNames);		destPanel.add(				HackModule.getLabeledComponent(						"Style: ", styleBox));				JPanel previewPanel = new JPanel();		previewPanel.setLayout(				new BoxLayout(previewPanel, BoxLayout.Y_AXIS));		previewPanel.add(new JLabel("Destination Preview",0));		/*destPreview.setPreferredSize(				new Dimension(						destPreview.getWidthTiles() * MapEditor.tileWidth + 2,						destPreview.getHeightTiles() * MapEditor.tileHeight + 2));*/		destPreview.setAlignmentX(0);		previewPanel.add(destPreview);				JPanel contentPanel = new JPanel();		contentPanel.setLayout(				new BoxLayout(contentPanel, BoxLayout.Y_AXIS));		contentPanel.add(new JLabel("Entry Properties:",0));		entryPanel.setAlignmentX(0);		contentPanel.add(entryPanel);		contentPanel.add(new JLabel("Destination Properties:",0));		destPanel.setAlignmentX(0);		contentPanel.add(destPanel);		warnLabel = new JLabel("<html>Type match.</html>");		warnLabel.setHorizontalAlignment(0);		contentPanel.add(warnLabel);				this.mainWindow.getContentPane().add(				contentPanel, BorderLayout.CENTER);		this.mainWindow.getContentPane().add(				previewPanel, BorderLayout.LINE_START);		this.mainWindow.pack();	}