23 package com.realtime.crossfire.jxclient.gui.gui;
31 import java.awt.Component;
32 import java.awt.Container;
33 import java.awt.Dimension;
34 import java.awt.event.KeyEvent;
35 import java.util.Collection;
36 import java.util.EnumSet;
37 import javax.swing.JComponent;
38 import javax.swing.JFrame;
39 import org.jetbrains.annotations.NotNull;
40 import org.jetbrains.annotations.Nullable;
55 private final JComponent
component =
new JComponent() {
60 private static final long serialVersionUID = 1L;
221 final int count =
component.getComponentCount();
222 for (
int i = 0; i < count; i++) {
223 final Component
component = this.component.getComponent(i);
237 if (defaultElement !=
null) {
252 final int count =
component.getComponentCount();
253 for (
int i = 0; i < count; i++) {
254 final Component
component = this.component.getComponent(i);
256 return class_.cast(element);
273 final int count =
component.getComponentCount();
274 for (
int i = 0; i < count; i++) {
275 final Component
component = this.component.getComponent(i);
277 return class_.cast(element);
292 final int count =
component.getComponentCount();
293 for (
int i = 0; i < count; i++) {
294 final Component
component = this.component.getComponent(i);
296 return class_.cast(element);
312 Component
component = this.component.findComponentAt(x, y);
339 if (previousActiveElement !=
null) {
342 assert this.activeElement !=
null;
343 this.activeElement.activeChanged();
351 this.activeElement =
null;
352 assert previousActiveElement !=
null;
370 return this.activeElement !=
null && this.activeElement ==
activeElement;
394 switch (e.getKeyCode()) {
395 case KeyEvent.VK_ENTER:
396 case KeyEvent.VK_SPACE:
398 if (defaultElement !=
null) {
404 case KeyEvent.VK_TAB:
434 if (!textArea.
getName().equals(
"command")) {
452 public <T extends GUIElement> T
getFirstElement(@NotNull
final Class<T> class_, @NotNull
final String name) {
453 final int count =
component.getComponentCount();
454 for (
int i = 0; i < count; i++) {
455 final Component
component = this.component.getComponent(i);
457 return class_.cast(element);
521 return (name ==
null ?
"" : name)+
"["+
component.getWidth()+
"x"+
component.getHeight()+
"]";
530 public void autoSize(
final int screenWidth,
final int screenHeight) {
537 if (extent !=
null) {
538 final Dimension preferredSize =
component.getPreferredSize();
539 x = extent.
getX(screenWidth, screenHeight, preferredSize.width, preferredSize.height);
540 y = extent.
getY(screenWidth, screenHeight, preferredSize.width, preferredSize.height);
541 w = extent.
getW(screenWidth, screenHeight, preferredSize.width, preferredSize.height);
542 h = extent.
getH(screenWidth, screenHeight, preferredSize.width, preferredSize.height);
549 final Dimension preferredSize =
component.getPreferredSize();
552 x = screenWidth/2-preferredSize.width;
554 x =
defaultX.
evaluate(screenWidth, screenHeight, preferredSize.width, preferredSize.height)-preferredSize.width/2;
558 y = screenHeight/2-preferredSize.height;
560 y =
defaultY.
evaluate(screenWidth, screenHeight, preferredSize.width, preferredSize.height)-preferredSize.height/2;
562 w = preferredSize.width;
563 h = preferredSize.height;
565 setBounds(x, y, w, h, screenWidth, screenHeight);
602 final int count =
component.getComponentCount();
603 for (
int i = 0; i < count; i++) {
604 final Component
component = this.component.getComponent(i);
606 element.notifyOpen();
641 public void setBounds(
final int x,
final int y,
final int width,
final int height,
final int windowWidth,
final int windowHeight) {
642 int newWidth = width;
643 int newHeight = height;
644 final Dimension maximumSize =
component.getMaximumSize();
645 if (maximumSize !=
null) {
646 if (newWidth > maximumSize.width) {
647 newWidth = maximumSize.width;
649 if (newHeight > maximumSize.height) {
650 newHeight = maximumSize.height;
653 final Dimension minimumSize =
component.getMinimumSize();
654 if (minimumSize !=
null) {
655 if (newWidth < minimumSize.width) {
656 newWidth = minimumSize.width;
658 if (newHeight < minimumSize.height) {
659 newHeight = minimumSize.height;
662 final int newX = Math.max(Math.min(x, windowWidth-newWidth), 0);
663 final int newY = Math.max(Math.min(y, windowHeight-newHeight), 0);
664 component.setBounds(newX, newY, newWidth, newHeight);
676 if (c instanceof JFrame) {
695 final int count =
component.getComponentCount();
696 for (
int i = 0; i < count; i++) {
697 final Component
component = this.component.getComponent(i);
699 dialogBackground.setOpaqueDialogBackground(opaque);
710 final int count =
component.getComponentCount();
711 for (
int i = 0; i < count; i++) {
712 final Component
component = this.component.getComponent(i);
714 messageLog.setShowSentCommands(showSentCommands);
724 final int count =
component.getComponentCount();
725 for (
int i = 0; i < count; i++) {
726 final Component
component = this.component.getComponent(i);
728 messageLog.setShowTimestamps(showTimestamps);