Search in sources :

Example 21 with Entity

use of megamek.common.Entity in project megameklab by MegaMek.

the class MenuBarCreator method jMenuGetUnitValidationFromFile_actionPerformed.

private void jMenuGetUnitValidationFromFile_actionPerformed() {
    Entity tempEntity = null;
    String filePathName = System.getProperty("user.dir").toString() + "/data/mechfiles/";
    File unitFile = new File(filePathName);
    JFileChooser f = new JFileChooser(filePathName);
    f.setLocation(parentFrame.getLocation().x + 150, parentFrame.getLocation().y + 100);
    f.setDialogTitle("Choose Unit");
    f.setDialogType(JFileChooser.OPEN_DIALOG);
    f.setMultiSelectionEnabled(false);
    FileNameExtensionFilter filter = new FileNameExtensionFilter("Unit Files", "blk", "mtf", "hmp");
    // Add a filter for mul files
    f.setFileFilter(filter);
    int returnVal = f.showOpenDialog(parentFrame);
    if ((returnVal != JFileChooser.APPROVE_OPTION) || (f.getSelectedFile() == null)) {
        // I want a file, y'know!
        return;
    }
    unitFile = f.getSelectedFile();
    try {
        tempEntity = new MechFileParser(unitFile).getEntity();
    } catch (Exception ex) {
        JOptionPane.showMessageDialog(parentFrame, String.format("Warning:Invalid unit, it might load incorrectly!\n%1$s", ex.getMessage()));
    } finally {
        UnitUtil.showValidation(tempEntity, parentFrame);
    }
}
Also used : Entity(megamek.common.Entity) JFileChooser(javax.swing.JFileChooser) MechFileParser(megamek.common.MechFileParser) FileNameExtensionFilter(javax.swing.filechooser.FileNameExtensionFilter) File(java.io.File) BLKFile(megamek.common.loaders.BLKFile)

Example 22 with Entity

use of megamek.common.Entity in project megameklab by MegaMek.

the class MenuBarCreator method jMenuGetUnitBVFromFile_actionPerformed.

private void jMenuGetUnitBVFromFile_actionPerformed() {
    Entity tempEntity = null;
    String filePathName = System.getProperty("user.dir").toString() + "/data/mechfiles/";
    File unitFile = new File(filePathName);
    JFileChooser f = new JFileChooser(filePathName);
    f.setLocation(parentFrame.getLocation().x + 150, parentFrame.getLocation().y + 100);
    f.setDialogTitle("Choose Unit");
    f.setDialogType(JFileChooser.OPEN_DIALOG);
    f.setMultiSelectionEnabled(false);
    FileNameExtensionFilter filter = new FileNameExtensionFilter("Unit Files", "blk", "mtf", "hmp");
    // Add a filter for mul files
    f.setFileFilter(filter);
    int returnVal = f.showOpenDialog(parentFrame);
    if ((returnVal != JFileChooser.APPROVE_OPTION) || (f.getSelectedFile() == null)) {
        // I want a file, y'know!
        return;
    }
    unitFile = f.getSelectedFile();
    try {
        tempEntity = new MechFileParser(unitFile).getEntity();
    } catch (Exception ex) {
        JOptionPane.showMessageDialog(parentFrame, String.format("Warning:Invalid unit, it might load incorrectly!\n%1$s", ex.getMessage()));
    } finally {
        tempEntity.calculateBattleValue(true, true);
        UnitUtil.showBVCalculations(tempEntity.getBVText(), parentFrame);
    }
}
Also used : Entity(megamek.common.Entity) JFileChooser(javax.swing.JFileChooser) MechFileParser(megamek.common.MechFileParser) FileNameExtensionFilter(javax.swing.filechooser.FileNameExtensionFilter) File(java.io.File) BLKFile(megamek.common.loaders.BLKFile)

Example 23 with Entity

use of megamek.common.Entity in project megameklab by MegaMek.

the class MenuBarCreator method loadUnitFromFile.

private void loadUnitFromFile(File unitFile) {
    try {
        Entity tempEntity = new MechFileParser(unitFile).getEntity();
        if (null == tempEntity) {
            return;
        }
        if (UnitUtil.validateUnit(tempEntity).trim().length() > 0) {
            JOptionPane.showMessageDialog(parentFrame, String.format("Warning:Invalid unit, it might load incorrectly!\n%1$s", UnitUtil.validateUnit(tempEntity)));
        }
        if (tempEntity.getEntityType() != parentFrame.getEntity().getEntityType()) {
            MegaMekLabMainUI newUI = null;
            if (tempEntity.hasETypeFlag(Entity.ETYPE_SMALL_CRAFT)) {
                newUI = new megameklab.com.ui.Dropship.MainUI(((Aero) tempEntity).isPrimitive());
            } else if ((tempEntity instanceof Aero) && !((tempEntity instanceof Jumpship) || (tempEntity instanceof FixedWingSupport))) {
                newUI = new megameklab.com.ui.Aero.MainUI(((Aero) tempEntity).isPrimitive());
            } else if (tempEntity instanceof BattleArmor) {
                newUI = new megameklab.com.ui.BattleArmor.MainUI();
            } else if (tempEntity instanceof Infantry) {
                newUI = new megameklab.com.ui.Infantry.MainUI();
            } else if (tempEntity instanceof Mech) {
                newUI = new megameklab.com.ui.Mek.MainUI();
            } else if ((tempEntity instanceof Tank) && !(tempEntity instanceof GunEmplacement)) {
                newUI = new megameklab.com.ui.Vehicle.MainUI();
            }
            if (null == newUI) {
                JOptionPane.showMessageDialog(parentFrame, "Warning: Could not create new UI, aborting unit load!");
                return;
            }
            parentFrame.dispose();
            UnitUtil.updateLoadedUnit(tempEntity);
            newUI.setEntity(tempEntity);
            newUI.reloadTabs();
            newUI.repaint();
            newUI.refreshAll();
            return;
        }
        parentFrame.setEntity(tempEntity);
        UnitUtil.updateLoadedUnit(parentFrame.getEntity());
        CConfig.updateSaveFiles(unitFile.getAbsolutePath());
    } catch (Exception ex) {
        JOptionPane.showMessageDialog(parentFrame, String.format("Warning:Invalid unit, it might load incorrectly!\n%1$s", ex.getMessage()));
    }
    reload();
    refresh();
    parentFrame.setVisible(true);
}
Also used : MegaMekLabMainUI(megameklab.com.ui.MegaMekLabMainUI) Entity(megamek.common.Entity) FixedWingSupport(megamek.common.FixedWingSupport) Tank(megamek.common.Tank) Infantry(megamek.common.Infantry) MegaMek(megamek.MegaMek) MechFileParser(megamek.common.MechFileParser) MegaMekLabMainUI(megameklab.com.ui.MegaMekLabMainUI) Mech(megamek.common.Mech) Jumpship(megamek.common.Jumpship) GunEmplacement(megamek.common.GunEmplacement) Aero(megamek.common.Aero) BattleArmor(megamek.common.BattleArmor)

Example 24 with Entity

use of megamek.common.Entity in project megameklab by MegaMek.

the class MenuBarCreator method loadFileMenuOptions.

private void loadFileMenuOptions() {
    file.removeAll();
    file.setMnemonic(KeyEvent.VK_F);
    JMenuItem item = new JMenuItem();
    item = new JMenuItem("Reset Current Unit");
    item.setMnemonic(KeyEvent.VK_R);
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
    item.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            jMenuResetEntity_actionPerformed(e);
        }
    });
    file.add(item);
    JMenu unitMenu = new JMenu("Switch Unit Type");
    unitMenu.setMnemonic(KeyEvent.VK_S);
    Entity en = parentFrame.getEntity();
    if (!(en instanceof Mech) || ((Mech) en).isPrimitive()) {
        item = new JMenuItem();
        item.setText("Mech");
        item.setMnemonic(KeyEvent.VK_M);
        item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
        item.addActionListener(e -> jMenuLoadMech());
        unitMenu.add(item);
    }
    if (!(en.isFighter() || (en.isFighter() && ((Aero) en).isPrimitive()))) {
        item = new JMenuItem();
        item.setText("Aero/Conv Fighter");
        item.setMnemonic(KeyEvent.VK_A);
        item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
        item.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                jMenuLoadAero();
            }
        });
        unitMenu.add(item);
    }
    if (!(en instanceof SmallCraft) || ((Aero) en).isPrimitive()) {
        item = new JMenuItem();
        item.setText("Dropship/Small Craft");
        item.setMnemonic(KeyEvent.VK_D);
        item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
        item.addActionListener(e -> jMenuLoadDropship());
        unitMenu.add(item);
    }
    if (!(parentFrame.getEntity() instanceof Tank)) {
        item = new JMenuItem();
        item.setText("Combat Vehicle");
        item.setMnemonic(KeyEvent.VK_T);
        item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
        item.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                jMenuLoadVehicle();
            }
        });
        unitMenu.add(item);
    }
    if (!(parentFrame.getEntity() instanceof BattleArmor)) {
        item = new JMenuItem();
        item.setText("BattleArmor");
        item.setMnemonic(KeyEvent.VK_B);
        item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
        item.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                jMenuLoadBattleArmor();
            }
        });
        unitMenu.add(item);
    }
    if (!(parentFrame.getEntity() instanceof Infantry) || (parentFrame.getEntity() instanceof BattleArmor)) {
        item = new JMenuItem();
        item.setText("Infantry");
        item.setMnemonic(KeyEvent.VK_I);
        item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
        item.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                jMenuLoadInfantry();
            }
        });
        unitMenu.add(item);
    }
    JMenu pMenu = new JMenu("Primitive/Retro");
    if (!(en instanceof Mech) || !((Mech) en).isPrimitive()) {
        item = new JMenuItem();
        item.setText("Mech");
        item.addActionListener(e -> jMenuLoadPrimitiveMech());
        pMenu.add(item);
    }
    if (!(en.isFighter()) || !((Aero) en).isPrimitive()) {
        item = new JMenuItem();
        item.setText("Aero");
        item.addActionListener(e -> jMenuLoadPrimitiveAero());
        pMenu.add(item);
    }
    if (!(en.hasETypeFlag(Entity.ETYPE_SMALL_CRAFT)) || !((Aero) en).isPrimitive()) {
        item = new JMenuItem();
        item.setText("Dropship/Small Craft");
        item.addActionListener(e -> jMenuLoadPrimitiveDropship());
        pMenu.add(item);
    }
    unitMenu.add(pMenu);
    file.add(unitMenu);
    JMenu loadMenu = new JMenu("Load");
    loadMenu.setMnemonic(KeyEvent.VK_L);
    item = new JMenuItem();
    item.setText("From Cache");
    item.setMnemonic(KeyEvent.VK_C);
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
    item.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            jMenuLoadEntity_actionPerformed(e);
        }
    });
    loadMenu.add(item);
    item = new JMenuItem();
    item.setText("From File");
    item.setMnemonic(KeyEvent.VK_F);
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
    item.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            jMenuLoadEntityFromFile_actionPerformed(e);
        }
    });
    loadMenu.add(item);
    file.add(loadMenu);
    item = new JMenuItem(String.format("Current Unit"));
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
    item.setMnemonic(KeyEvent.VK_C);
    item.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            jMenuPrintCurrentUnit();
        }
    });
    file.add(UnitPrintManager.printMenu(parentFrame, item));
    item = new JMenuItem();
    item.setText("Save");
    item.setMnemonic(KeyEvent.VK_S);
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
    item.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            jMenuSaveEntity_actionPerformed(e);
        }
    });
    file.add(item);
    item = new JMenuItem();
    item.setText("Save As");
    item.setMnemonic(KeyEvent.VK_A);
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
    item.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            jMenuSaveAsEntity_actionPerformed(e);
        }
    });
    file.add(item);
    JMenu exportMenu = new JMenu("Export");
    item = new JMenuItem("to HTML");
    item.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            jMenuExportEntityHTML_actionPerformed(e);
        }
    });
    exportMenu.add(item);
    item = new JMenuItem("to Text");
    item.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            jMenuExportEntityText_actionPerformed(e);
        }
    });
    exportMenu.add(item);
    item = new JMenuItem("to Clipboard (text)");
    item.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            jMenuExportEntityClipboard_actionPerformed(e);
        }
    });
    exportMenu.add(item);
    file.add(exportMenu);
    item = new JMenuItem("Configuration");
    item.setMnemonic(KeyEvent.VK_C);
    item.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            jMenuConfiguration_actionPerformed(e);
        }
    });
    file.add(item);
    int fileNumber = 1;
    if (CConfig.getParam(CConfig.CONFIG_SAVE_FILE_1).length() > 1) {
        file.addSeparator();
        item = new JMenuItem();
        String newFile = CConfig.getParam(CConfig.CONFIG_SAVE_FILE_1);
        if (newFile.length() > 35) {
            item.setText(fileNumber + ". .." + newFile.substring(newFile.length() - 36));
        } else {
            item.setText(fileNumber + ". " + newFile);
        }
        item.setMnemonic(fileNumber);
        item.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                jMenuLoadEntityFromFile_actionPerformed(1);
            }
        });
        file.add(item);
        fileNumber++;
    }
    if (CConfig.getParam(CConfig.CONFIG_SAVE_FILE_2).length() > 1) {
        item = new JMenuItem();
        String newFile = CConfig.getParam(CConfig.CONFIG_SAVE_FILE_2);
        if (newFile.length() > 35) {
            item.setText(fileNumber + ". .." + newFile.substring(newFile.length() - 36));
        } else {
            item.setText(fileNumber + ". " + newFile);
        }
        item.setMnemonic(fileNumber);
        item.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                jMenuLoadEntityFromFile_actionPerformed(2);
            }
        });
        file.add(item);
        fileNumber++;
    }
    if (CConfig.getParam(CConfig.CONFIG_SAVE_FILE_3).length() > 1) {
        item = new JMenuItem();
        String newFile = CConfig.getParam(CConfig.CONFIG_SAVE_FILE_3);
        if (newFile.length() > 35) {
            item.setText(fileNumber + ". .." + newFile.substring(newFile.length() - 36));
        } else {
            item.setText(fileNumber + ". " + newFile);
        }
        item.setMnemonic(fileNumber);
        item.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                jMenuLoadEntityFromFile_actionPerformed(3);
            }
        });
        file.add(item);
        fileNumber++;
    }
    if (CConfig.getParam(CConfig.CONFIG_SAVE_FILE_4).length() > 1) {
        item = new JMenuItem();
        String newFile = CConfig.getParam(CConfig.CONFIG_SAVE_FILE_4);
        if (newFile.length() > 35) {
            item.setText(fileNumber + ". .." + newFile.substring(newFile.length() - 36));
        } else {
            item.setText(fileNumber + ". " + newFile);
        }
        item.setMnemonic(fileNumber);
        item.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                jMenuLoadEntityFromFile_actionPerformed(4);
            }
        });
        file.add(item);
        fileNumber++;
    }
    file.addSeparator();
    item = new JMenuItem();
    item.setText("Exit");
    item.setMnemonic(KeyEvent.VK_X);
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
    item.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            jMenuExit_actionPerformed(e);
        }
    });
    file.add(item);
}
Also used : Entity(megamek.common.Entity) ActionEvent(java.awt.event.ActionEvent) Tank(megamek.common.Tank) SmallCraft(megamek.common.SmallCraft) Infantry(megamek.common.Infantry) ActionListener(java.awt.event.ActionListener) Mech(megamek.common.Mech) JMenuItem(javax.swing.JMenuItem) JMenu(javax.swing.JMenu) Aero(megamek.common.Aero) BattleArmor(megamek.common.BattleArmor)

Example 25 with Entity

use of megamek.common.Entity in project megameklab by MegaMek.

the class MenuBarCreator method jMenuGetUnitBreakdownFromFile_actionPerformed.

private void jMenuGetUnitBreakdownFromFile_actionPerformed() {
    Entity tempEntity = null;
    String filePathName = System.getProperty("user.dir").toString() + "/data/mechfiles/";
    File unitFile = new File(filePathName);
    JFileChooser f = new JFileChooser(filePathName);
    f.setLocation(parentFrame.getLocation().x + 150, parentFrame.getLocation().y + 100);
    f.setDialogTitle("Choose Unit");
    f.setDialogType(JFileChooser.OPEN_DIALOG);
    f.setMultiSelectionEnabled(false);
    FileNameExtensionFilter filter = new FileNameExtensionFilter("Unit Files", "blk", "mtf", "hmp");
    // Add a filter for mul files
    f.setFileFilter(filter);
    int returnVal = f.showOpenDialog(parentFrame);
    if ((returnVal != JFileChooser.APPROVE_OPTION) || (f.getSelectedFile() == null)) {
        // I want a file, y'know!
        return;
    }
    unitFile = f.getSelectedFile();
    try {
        tempEntity = new MechFileParser(unitFile).getEntity();
    } catch (Exception ex) {
        JOptionPane.showMessageDialog(parentFrame, String.format("Warning:Invalid unit, it might load incorrectly!\n%1$s", ex.getMessage()));
    } finally {
        UnitUtil.showUnitCostBreakDown(tempEntity, parentFrame);
    }
}
Also used : Entity(megamek.common.Entity) JFileChooser(javax.swing.JFileChooser) MechFileParser(megamek.common.MechFileParser) FileNameExtensionFilter(javax.swing.filechooser.FileNameExtensionFilter) File(java.io.File) BLKFile(megamek.common.loaders.BLKFile)

Aggregations

Entity (megamek.common.Entity)33 File (java.io.File)10 JFileChooser (javax.swing.JFileChooser)10 FileNameExtensionFilter (javax.swing.filechooser.FileNameExtensionFilter)10 UnitLoadingDialog (megamek.client.ui.swing.UnitLoadingDialog)10 UnitSelectorDialog (megamek.client.ui.swing.UnitSelectorDialog)10 MechFileParser (megamek.common.MechFileParser)10 BattleArmor (megamek.common.BattleArmor)7 Vector (com.sun.java.util.collections.Vector)6 Aero (megamek.common.Aero)6 Infantry (megamek.common.Infantry)6 Mech (megamek.common.Mech)6 Tank (megamek.common.Tank)6 BLKFile (megamek.common.loaders.BLKFile)6 Iterator (com.sun.java.util.collections.Iterator)5 Enumeration (java.util.Enumeration)4 Vector (java.util.Vector)4 ActionEvent (java.awt.event.ActionEvent)3 ActionListener (java.awt.event.ActionListener)3 List (java.util.List)3