From fbf06f6297f8266e8e0d99cf754601c6db2d0003 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 12 Jan 2023 01:14:05 -0500 Subject: [PATCH] Creating --- .../ui/baseComponents/JDisableablePanel.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 megamek/src/megamek/client/ui/baseComponents/JDisableablePanel.java diff --git a/megamek/src/megamek/client/ui/baseComponents/JDisableablePanel.java b/megamek/src/megamek/client/ui/baseComponents/JDisableablePanel.java new file mode 100644 index 00000000000..3b0fd12bcce --- /dev/null +++ b/megamek/src/megamek/client/ui/baseComponents/JDisableablePanel.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2021-2023 - The MegaMek Team. All Rights Reserved. + * + * This file is part of MegaMek. + * + * MegaMek is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * MegaMek is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with MegaMek. If not, see . + */ +package megamek.client.ui.baseComponents; + +import javax.swing.*; +import java.awt.*; + +/** + * This panel is used when you want a JPanel that enables/disables all of its children when it is + * enabled/disabled. This is purposefully not recursive, as we only want child components to be + * disabled based on the settings here. + */ +public class JDisableablePanel extends JPanel { + //region Constructors + public JDisableablePanel(final String name) { + super(); + setName(name); + } + //endregion Constructors + + /** + * This override forces all child components to be the same value for enabled as this component, + * thus allowing one to easily enable/disable child components and panels. + * @param enabled whether to enable the child components or not + */ + @Override + public void setEnabled(final boolean enabled) { + super.setEnabled(enabled); + for (final Component component : getComponents()) { + component.setEnabled(enabled); + } + } +}