[sweethome3d] 07/09: Drop 01noMacOSX

Markus Koschany apo at moszumanska.debian.org
Sun Jan 28 17:05:31 UTC 2018


This is an automated email from the git hooks/post-receive script.

apo pushed a commit to branch master
in repository sweethome3d.

commit e4045415ac780dabf3a8b15300407f0c7e5957f1
Author: Markus Koschany <apo at debian.org>
Date:   Sun Jan 28 17:11:09 2018 +0100

    Drop 01noMacOSX
---
 debian/patches/01noMacOSX | 929 ----------------------------------------------
 debian/patches/series     |   1 -
 2 files changed, 930 deletions(-)

diff --git a/debian/patches/01noMacOSX b/debian/patches/01noMacOSX
deleted file mode 100644
index 706be34..0000000
--- a/debian/patches/01noMacOSX
+++ /dev/null
@@ -1,929 +0,0 @@
-From: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
-Date: Wed, 13 Sep 2017 09:51:44 +0200
-Subject: noMacOSX
-
-fails looking for missing classes. This patch fixes it.
-Author: Gabriele Giacone <1o5g4r8o at gmail.com>
----
- src/com/eteks/sweethome3d/HomeFramePane.java       |   2 +
- src/com/eteks/sweethome3d/MacOSXConfiguration.java | 815 ---------------------
- src/com/eteks/sweethome3d/SweetHome3D.java         |  11 +-
- .../eteks/sweethome3d/tools/OperatingSystem.java   |   6 +-
- 4 files changed, 13 insertions(+), 821 deletions(-)
- delete mode 100644 src/com/eteks/sweethome3d/MacOSXConfiguration.java
-
-diff --git a/src/com/eteks/sweethome3d/HomeFramePane.java b/src/com/eteks/sweethome3d/HomeFramePane.java
-index 57fb352..56234d7 100644
---- a/src/com/eteks/sweethome3d/HomeFramePane.java
-+++ b/src/com/eteks/sweethome3d/HomeFramePane.java
-@@ -123,9 +123,11 @@ public class HomeFramePane extends JRootPane implements View {
-       // Call setIconImage available in previous versions
-       homeFrame.setIconImage(frameImages.get(0));
-     }
-+/*
-     if (OperatingSystem.isMacOSXLionOrSuperior()) {
-       MacOSXConfiguration.installToolBar(this);
-     }
-+ */
-     updateFrameTitle(homeFrame, this.home, this.application);
-     // Change component orientation
-     applyComponentOrientation(ComponentOrientation.getOrientation(Locale.getDefault()));    
-diff --git a/src/com/eteks/sweethome3d/MacOSXConfiguration.java b/src/com/eteks/sweethome3d/MacOSXConfiguration.java
-deleted file mode 100644
-index c1428b1..0000000
---- a/src/com/eteks/sweethome3d/MacOSXConfiguration.java
-+++ /dev/null
-@@ -1,815 +0,0 @@
--/*
-- * MacOSXConfiguraton.java 6 sept. 2006
-- *
-- * Sweet Home 3D, Copyright (c) 2006 Emmanuel PUYBARET / eTeks <info at eteks.com>
-- *
-- * This program 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 2 of the License, or
-- * (at your option) any later version.
-- *
-- * This program 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 this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-- */
--package com.eteks.sweethome3d;
--
--import java.awt.Color;
--import java.awt.Component;
--import java.awt.Container;
--import java.awt.EventQueue;
--import java.awt.Frame;
--import java.awt.GradientPaint;
--import java.awt.Graphics;
--import java.awt.Graphics2D;
--import java.awt.Image;
--import java.awt.Insets;
--import java.awt.Point;
--import java.awt.Window;
--import java.awt.event.ActionEvent;
--import java.awt.event.MouseEvent;
--import java.awt.event.WindowAdapter;
--import java.awt.event.WindowEvent;
--import java.awt.event.WindowStateListener;
--import java.io.IOException;
--import java.lang.reflect.InvocationTargetException;
--import java.util.List;
--import java.util.concurrent.Executors;
--import java.util.concurrent.atomic.AtomicBoolean;
--
--import javax.imageio.ImageIO;
--import javax.media.j3d.Canvas3D;
--import javax.swing.AbstractAction;
--import javax.swing.JCheckBoxMenuItem;
--import javax.swing.JComponent;
--import javax.swing.JFrame;
--import javax.swing.JMenu;
--import javax.swing.JMenuBar;
--import javax.swing.JMenuItem;
--import javax.swing.JRootPane;
--import javax.swing.JSplitPane;
--import javax.swing.JToolBar;
--import javax.swing.SwingUtilities;
--import javax.swing.UIManager;
--import javax.swing.border.AbstractBorder;
--import javax.swing.border.Border;
--import javax.swing.border.CompoundBorder;
--import javax.swing.event.AncestorEvent;
--import javax.swing.event.AncestorListener;
--import javax.swing.event.MenuEvent;
--import javax.swing.event.MenuListener;
--import javax.swing.event.MouseInputAdapter;
--
--import com.apple.eawt.AppEvent.FullScreenEvent;
--import com.apple.eawt.Application;
--import com.apple.eawt.ApplicationAdapter;
--import com.apple.eawt.ApplicationEvent;
--import com.apple.eawt.FullScreenAdapter;
--import com.apple.eawt.FullScreenListener;
--import com.apple.eawt.FullScreenUtilities;
--import com.eteks.sweethome3d.model.CollectionEvent;
--import com.eteks.sweethome3d.model.CollectionListener;
--import com.eteks.sweethome3d.model.Home;
--import com.eteks.sweethome3d.model.UserPreferences;
--import com.eteks.sweethome3d.swing.HomePane;
--import com.eteks.sweethome3d.swing.ResourceAction;
--import com.eteks.sweethome3d.swing.SwingTools;
--import com.eteks.sweethome3d.tools.OperatingSystem;
--import com.eteks.sweethome3d.viewcontroller.HomeController;
--import com.sun.j3d.exp.swing.JCanvas3D;
--
--/**
-- * Configuration class that accesses to Mac OS X specifics.
-- * Do not invoke methods of this class without checking first if 
-- * <code>os.name</code> System property is <code>Mac OS X</code>.
-- * This class requires some classes of <code>com.apple.eawt</code> package  
-- * to compile.
-- * @author Emmanuel Puybaret
-- */
--class MacOSXConfiguration {
--  private static boolean fullScreen;
--
--  private MacOSXConfiguration() {    
--  }
--  
--  /**
--   * Returns <code>true</code> if the screen menu bar is supported.
--   */
--  public static boolean isScreenMenuBarSupported() {
--    if (OperatingSystem.isJavaVersionGreaterOrEqual("1.9")) {
--      try {
--        // Call Desktop.isSupported(Desktop.Action.APP_ABOUT)
--        Class<?> desktopClass = Class.forName("java.awt.Desktop");
--        Object desktopInstance = desktopClass.getMethod("getDesktop").invoke(null);
--        Class<?> desktopActionEnum = Class.forName("java.awt.Desktop$Action");
--        return (Boolean)desktopClass.getMethod("isSupported", desktopActionEnum).invoke(
--            desktopInstance, desktopActionEnum.getField("APP_ABOUT").get(null));
--      } catch (Throwable ex) {
--        return false;
--      }
--    } else {
--      // By default, About menu item is available 
--      return Application.getApplication().isAboutMenuItemPresent();
--    }
--  }
--  
--  /**
--   * Binds <code>homeApplication</code> to Mac OS X application menu.
--   */
--  public static void bindToApplicationMenu(final SweetHome3D homeApplication) {
--    final Application macosxApplication = Application.getApplication();
--    // Create a default controller for an empty home and disable unrelated actions
--    final HomeController defaultController = 
--        homeApplication.createHomeFrameController(homeApplication.createHome()).getHomeController();
--    final HomePane defaultHomeView = (HomePane)defaultController.getView();
--    setDefaultActionsEnabled(defaultHomeView, false);
--    final JMenuBar defaultMenuBar = defaultHomeView.getJMenuBar();
--    
--    JFrame frame = null;
--    if (Boolean.getBoolean("apple.laf.useScreenMenuBar")) { 
--      if (OperatingSystem.isJavaVersionBetween("1.7", "1.7.0_60")) {
--        // Application#setDefaultMenuBar does nothing under Java 7 < 1.7.0_60
--        frame = createDummyFrameWithDefaultMenuBar(homeApplication, defaultHomeView, defaultMenuBar);
--      } else if (UIManager.getLookAndFeel().getClass().getName().equals(UIManager.getSystemLookAndFeelClassName())) {
--        try {
--          if (OperatingSystem.isJavaVersionGreaterOrEqual("1.9")) {
--            // Call Desktop.setDefaultMenuBar(defaultMenuBar)
--            Class desktopClass = Class.forName("java.awt.Desktop");
--            Object desktopInstance = desktopClass.getMethod("getDesktop").invoke(null);
--            desktopClass.getMethod("setDefaultMenuBar", JMenuBar.class).invoke(desktopInstance, defaultMenuBar);
--          } else {
--            macosxApplication.setDefaultMenuBar(defaultMenuBar);
--          }
--          addWindowMenu(null, defaultMenuBar, homeApplication, defaultHomeView, true);
--        } catch (Throwable ex) {
--          // Create default frame if setDefaultMenuBar isn't available
--          frame = createDummyFrameWithDefaultMenuBar(homeApplication, defaultHomeView, defaultMenuBar);
--        }
--      }
--    } 
--
--    final JFrame defaultFrame = frame;
--    try {
--      // Add a listener to Mac OS X application that will call
--      // controller methods of the active frame
--      macosxApplication.addApplicationListener(new ApplicationAdapter() {      
--          @Override
--          public void handleQuit(ApplicationEvent ev) { 
--            MacOSXConfiguration.handleQuit(homeApplication, defaultController, defaultFrame);
--          }
--          
--          @Override
--          public void handleAbout(ApplicationEvent ev) {
--            MacOSXConfiguration.handleAbout(homeApplication, defaultController, defaultFrame);
--            ev.setHandled(true);
--          }
--    
--          @Override
--          public void handlePreferences(ApplicationEvent ev) {
--            MacOSXConfiguration.handlePreferences(homeApplication, defaultController, defaultFrame);
--          }
--          
--          @Override
--          public void handleOpenFile(ApplicationEvent ev) {
--            // handleOpenFile is called when user opens a document
--            // associated with a Java Web Start application
--            // Just call main with -open file arguments as JNLP specifies 
--            MacOSXConfiguration.handleOpenFile(homeApplication, ev.getFilename());
--          }
--          
--          @Override
--          public void handleReOpenApplication(ApplicationEvent ev) {
--            // handleReOpenApplication is called when user launches 
--            // the application when it's already open
--            MacOSXConfiguration.handleReOpenApplication(homeApplication);
--          }
--        });
--      macosxApplication.setEnabledAboutMenu(true);
--      macosxApplication.setEnabledPreferencesMenu(true);
--    } catch (NoSuchMethodError er) {
--      // Probably running under Java 9 where previous methods were removed
--      if (OperatingSystem.isJavaVersionGreaterOrEqual("1.9")) {
--        // Use the new handlers of Java 9 once compiling with Java 9 library is enabled
--        /*
--        java.awt.Desktop.getDesktop().setQuitHandler(new java.awt.desktop.QuitHandler() {
--            public void handleQuitRequestWith(java.awt.desktop.QuitEvent ev, java.awt.desktop.QuitResponse answer) {
--              MacOSXConfiguration.handleQuit(homeApplication, defaultController, defaultFrame);
--            }
--          });
--        java.awt.Desktop.getDesktop().setAboutHandler(new java.awt.desktop.AboutHandler() {
--            public void handleAbout(java.awt.desktop.AboutEvent ev) {
--              MacOSXConfiguration.handleAbout(homeApplication, defaultController, defaultFrame);
--            }
--          });
--        java.awt.Desktop.getDesktop().setPreferencesHandler(new java.awt.desktop.PreferencesHandler() {
--            public void handlePreferences(java.awt.desktop.PreferencesEvent ev) {
--              MacOSXConfiguration.handlePreferences(homeApplication, defaultController, defaultFrame);
--            }
--          });
--        java.awt.Desktop.getDesktop().setOpenFileHandler(new java.awt.desktop.OpenFilesHandler() {
--            public void openFiles(java.awt.desktop.OpenFilesEvent ev) {
--              for (java.io.File file : ev.getFiles()) {
--                MacOSXConfiguration.handleOpenFile(homeApplication, file.getAbsolutePath());
--              }
--            }
--          });
--        */
--        try {
--          // Call Desktop.getDesktop().setQuitStrategy(QuitStrategy.CLOSE_ALL_WINDOWS)
--          // to prevent default call to System#exit 
--          Class<?> desktopClass = Class.forName("java.awt.Desktop");
--          Object desktopInstance = desktopClass.getMethod("getDesktop").invoke(null);
--          Class<?> quitStrategyEnum = Class.forName("java.awt.desktop.QuitStrategy");
--          desktopClass.getMethod("setQuitStrategy", quitStrategyEnum).invoke(
--              desktopInstance, quitStrategyEnum.getField("CLOSE_ALL_WINDOWS").get(null));
--        } catch (Exception ex) {
--          ex.printStackTrace();
--        }
--      }
--    }
--    
--    homeApplication.addHomesListener(new CollectionListener<Home>() {
--      public void collectionChanged(CollectionEvent<Home> ev) {
--        if (ev.getType() == CollectionEvent.Type.ADD) {
--          final JFrame homeFrame = homeApplication.getHomeFrame(ev.getItem());
--          if (!Boolean.getBoolean("com.eteks.sweethome3d.no3D")
--              && !OperatingSystem.isJavaVersionGreaterOrEqual("1.7")) {
--            // To avoid a possible freeze of the program when the user requests a window enlargement 
--            // while the frame canvas 3D is instantiated, forbid window to be resized
--            homeFrame.setResizable(false);
--            Executors.newSingleThreadExecutor().submit(new Runnable() {                
--                public void run() {
--                  try {
--                    final AtomicBoolean canvas3D = new AtomicBoolean();
--                    do {
--                      Thread.sleep(50);
--                      EventQueue.invokeAndWait(new Runnable() {
--                          public void run() {
--                            canvas3D.set(homeFrame.isShowing()
--                                && isParentOfCanvas3D(homeFrame, Canvas3D.class, JCanvas3D.class));
--                          }
--                        });
--                    } while (!canvas3D.get());                  
--                  } catch (InterruptedException ex) {
--                  } catch (InvocationTargetException ex) {
--                    ex.printStackTrace();
--                  } finally {
--                    EventQueue.invokeLater(new Runnable() {
--                        public void run() {
--                          homeFrame.setResizable(true);
--                        }
--                      });
--                  }
--                }
--                
--                private boolean isParentOfCanvas3D(Container parent, Class<?> ... canvas3DClasses) {
--                  // Search 3D canvas among children and child windows in case the 3D view was detached
--                  for (int i = 0; i < parent.getComponentCount(); i++) {
--                    Component child = parent.getComponent(i);
--                    for (Class<?> canvas3DClass : canvas3DClasses) {
--                      if (canvas3DClass.isInstance(child)
--                          || child instanceof Container
--                            && isParentOfCanvas3D((Container)child, canvas3DClasses)) {
--                        return true;
--                      }
--                    }
--                  }
--                  if (parent instanceof Window) {
--                    for (Window window : ((Window)parent).getOwnedWindows()) {
--                      if (isParentOfCanvas3D(window, canvas3DClasses)) {
--                        return true;
--                      }
--                    }
--                  } 
--                  return false;
--                }
--              });
--          }
--          // Add Mac OS X Window menu on new homes
--          MacOSXConfiguration.addWindowMenu(
--              homeFrame, homeFrame.getJMenuBar(), homeApplication, defaultHomeView, false);
--          
--          if (OperatingSystem.isJavaVersionBetween("1.7", "1.7.0_60")) {
--            // Help system to understand it should display the main menu of one of the remaining windows when a window is closed
--            homeFrame.addWindowListener(new WindowAdapter() {
--                @Override
--                public void windowClosed(WindowEvent ev) {
--                  if (defaultFrame != null) {
--                    List<Home> homes = homeApplication.getHomes();
--                    defaultFrame.setVisible(false);
--                    defaultFrame.setVisible(true);
--                    if (homes.size() > 0) {
--                      homeApplication.getHomeFrame(homes.get(0)).toFront();
--                      defaultFrame.setVisible(false);
--                    }
--                  }
--                }
--              });
--          }
--          homeFrame.addWindowStateListener(new WindowStateListener() {
--              public void windowStateChanged(WindowEvent ev) {
--                // Enable default actions if needed
--                enableDefaultActions(homeApplication, defaultHomeView);
--              }
--            });
--          // Don't enable actions in default menu bar (the menu bar might be displayed when file dialogs are displayed)
--          setDefaultActionsEnabled(defaultHomeView, false);
--        } else if (ev.getType() == CollectionEvent.Type.DELETE) {
--          // Enable default actions if needed
--          enableDefaultActions(homeApplication, defaultHomeView);
--        }
--      };
--    });
--    
--    // Set application icon if program wasn't launch from bundle
--    if (!Boolean.getBoolean("sweethome3d.bundle")) {
--      try {
--        String iconPath = homeApplication.getUserPreferences().getLocalizedString(HomePane.class, "about.icon");
--        Image icon = ImageIO.read(HomePane.class.getResource(iconPath));
--        macosxApplication.setDockIconImage(icon);
--      } catch (NoSuchMethodError ex) {
--        // Ignore icon change if setDockIconImage isn't available
--      } catch (IOException ex) {
--      }
--    }
--  }
--
--  /**
--   * Handles quit action.
--   */
--  private static void handleQuit(final SweetHome3D homeApplication,
--                                 final HomeController defaultController,
--                                 final JFrame defaultFrame) {
--    Home modifiedHome = null;
--    int modifiedHomesCount = 0;
--    for (Home home : homeApplication.getHomes()) {
--      if (home.isModified()) {
--        modifiedHome = home;
--        modifiedHomesCount++;
--      }
--    }
--    
--    if (modifiedHomesCount == 1) {
--      // If only one home is modified, close it and exit if it was successfully closed
--      homeApplication.getHomeFrame(modifiedHome).toFront();
--      homeApplication.getHomeFrameController(modifiedHome).getHomeController().close(
--          new Runnable() {
--            public void run() {
--              for (Home home : homeApplication.getHomes()) {
--                if (home.isModified()) {
--                  return;
--                }
--              }
--              System.exit(0);
--            }
--          });
--    } else {
--      handleApplicationMenuAction(new Runnable() {
--          public void run() {
--            getActiveHomeController(homeApplication, defaultController, defaultFrame).exit();
--          }
--        }, defaultFrame);
--      if (homeApplication.getHomes().isEmpty()) {
--        System.exit(0);
--      }
--    }
--  }
--  
--  /**
--   * Handles how about pane is displayed.
--   */
--  protected static void handleAbout(final SweetHome3D homeApplication,
--                                    final HomeController defaultController,
--                                    final JFrame defaultFrame) {
--      handleApplicationMenuAction(new Runnable() {
--          public void run() {
--            getActiveHomeController(homeApplication, defaultController, defaultFrame).about();
--          }
--        }, defaultFrame); 
--  }
--
--  /**
--   * Handles how preferences pane is displayed.
--   */
--  private static void handlePreferences(final SweetHome3D homeApplication, 
--                                        final HomeController defaultController, 
--                                        final JFrame defaultFrame) {
--    handleApplicationMenuAction(new Runnable() {
--        public void run() {
--          getActiveHomeController(homeApplication, defaultController, defaultFrame).editPreferences();
--        }
--      }, defaultFrame);
--  }
--
--  /**
--   * Handles the opening of a document.
--   */
--  private static void handleOpenFile(final SweetHome3D homeApplication, String fileName) {
--    homeApplication.start(new String [] {"-open", fileName});
--  }
--  
--  /**
--   * Handles application when it's reopened.
--   */
--  private static void handleReOpenApplication(SweetHome3D homeApplication) {
--    homeApplication.start(new String [0]);
--  }
--
--  /**
--   * Handles actions launched from the application menu.
--   */
--  private static void handleApplicationMenuAction(Runnable runnable, JFrame defaultFrame) {
--    final Application macosxApplication = Application.getApplication();
--    Frame activeFrame = getActiveFrame(defaultFrame);        
--    if (defaultFrame != null && activeFrame == null) {
--      // Move default frame to center to display dialogs at center
--      defaultFrame.setLocationRelativeTo(null);
--      defaultFrame.toFront();
--      defaultFrame.setAlwaysOnTop(true);
--    }
--    
--    try {
--      // Disable About and Preferences menu items if possible 
--      macosxApplication.setEnabledAboutMenu(false);
--      macosxApplication.setEnabledPreferencesMenu(false);
--    } catch (NoSuchMethodError ex) {
--    }
--    
--    runnable.run();
--
--    try {
--      // Enable About and Preferences menu items again
--      macosxApplication.setEnabledAboutMenu(true);
--      macosxApplication.setEnabledPreferencesMenu(true);
--    } catch (NoSuchMethodError ex) {
--    }
--
--    // Activate previous frame again
--    if (activeFrame != null) {
--      activeFrame.toFront();
--    }
--    if (defaultFrame != null && activeFrame == null) {
--      defaultFrame.setAlwaysOnTop(false);
--      // Move default frame out of user view
--      defaultFrame.toBack();
--      defaultFrame.setLocation(-10, 0);
--    }
--  }
--
--  /**
--   * Returns the home controller that manages the active frame.
--   */
--  private static HomeController getActiveHomeController(SweetHome3D homeApplication,
--                                                        HomeController defaultController,
--                                                        JFrame defaultFrame) {
--    if (defaultFrame != null) {
--      Frame activeFrame = getActiveFrame(defaultFrame);
--      if (activeFrame != null) {
--        for (Home home : homeApplication.getHomes()) {
--          if (homeApplication.getHomeFrame(home) == activeFrame) {
--            return homeApplication.getHomeFrameController(home).getHomeController();
--          }
--        }
--      }
--    }
--    return defaultController;
--  }
--  
--  /**
--   * Returns the active frame.
--   */
--  private static Frame getActiveFrame(JFrame defaultFrame) {
--    Frame activeFrame = null;
--    for (Frame frame : Frame.getFrames()) {
--      if (frame != defaultFrame && frame.isActive()) {
--        activeFrame = frame;
--        break;
--      }
--    }
--    return activeFrame;
--  }
--
--  /**
--   * Enables default menu bar actions if no window is at screen.
--   */
--  private static void enableDefaultActions(SweetHome3D homeApplication, HomePane defaultHomeView) {
--    for (Home home : homeApplication.getHomes()) {
--      if ((homeApplication.getHomeFrame(home).getState() & JFrame.ICONIFIED) == 0) {
--        setDefaultActionsEnabled(defaultHomeView, false);
--        return;
--      }
--    }
--    // If all homes are iconified, enable actions in default menu bar
--    setDefaultActionsEnabled(defaultHomeView, true);
--  }
--  
--  /**
--   * Enables / disables default actions in the given view.
--   */
--  private static void setDefaultActionsEnabled(HomePane homeView, boolean enabled) {
--    for (HomePane.ActionType action : HomePane.ActionType.values()) {
--      switch (action) {
--        case ABOUT :
--        case NEW_HOME :
--        case NEW_HOME_FROM_EXAMPLE :
--        case OPEN :
--        case DELETE_RECENT_HOMES :
--        case HELP :
--          homeView.setEnabled(action, enabled);
--          break;
--        default :
--          homeView.setEnabled(action, false);
--      }
--    }
--  }
--
--  /**
--   * Returns a dummy frame used to display the default menu bar.
--   */
--  private static JFrame createDummyFrameWithDefaultMenuBar(final SweetHome3D homeApplication,
--                                                           final HomePane defaultHomeView, 
--                                                           final JMenuBar defaultMenuBar) {
--    final JFrame frame = new JFrame();
--    EventQueue.invokeLater(new Runnable() {
--        public void run() {
--          // Create a default undecorated frame out of sight 
--          // and attach the application menu bar of empty view to it
--          frame.setLocation(-10, 0);
--          frame.setUndecorated(true);
--          frame.setBackground(new Color(0, 0, 0, 0));
--          frame.setVisible(true);
--          frame.setJMenuBar(defaultMenuBar);
--          frame.setContentPane(defaultHomeView);
--          addWindowMenu(frame, defaultMenuBar, homeApplication, defaultHomeView, true);
--        }
--      });
--    homeApplication.addHomesListener(new CollectionListener<Home>() {
--        public void collectionChanged(CollectionEvent<Home> ev) {
--          if (ev.getType() == CollectionEvent.Type.DELETE) {
--            EventQueue.invokeLater(new Runnable() {
--                public void run() {
--                  if (frame.isActive()) {
--                    List<Home> homes = homeApplication.getHomes();
--                    if (homes.size() >= 1) {
--                      // Request focus in a remaining home if the dummy frame is active 
--                      homeApplication.getHomeFrame(homes.get(homes.size() - 1)).requestFocus();
--                    }
--                  }
--                }
--              });
--          }
--        }
--      });
--    return frame;
--  }
--  
--  /**
--   * Adds Mac OS X standard Window menu to frame. 
--   */
--  private static void addWindowMenu(final JFrame frame, 
--                                    final JMenuBar menuBar, 
--                                    final SweetHome3D homeApplication,
--                                    final HomePane defaultHomeView, 
--                                    boolean defaultFrame) {
--    UserPreferences preferences = homeApplication.getUserPreferences();
--    final JMenu windowMenu = new JMenu(
--        new ResourceAction(preferences, MacOSXConfiguration.class, "WINDOW_MENU", true));
--    // Add Window menu before Help menu
--    menuBar.add(windowMenu, menuBar.getComponentCount() - 1);
--    windowMenu.add(new JMenuItem(
--        new ResourceAction(preferences, MacOSXConfiguration.class, "MINIMIZE", !defaultFrame) {
--            @Override
--            public void actionPerformed(ActionEvent ev) {
--              frame.setState(JFrame.ICONIFIED);
--            }
--          }));
--    windowMenu.add(new JMenuItem(
--        new ResourceAction(preferences, MacOSXConfiguration.class, "ZOOM", !defaultFrame) {
--            @Override
--            public void actionPerformed(ActionEvent ev) {
--              if ((frame.getExtendedState() & JFrame.MAXIMIZED_BOTH) != 0) {
--                frame.setExtendedState(frame.getExtendedState() & ~JFrame.MAXIMIZED_BOTH);
--              } else {
--                frame.setExtendedState(frame.getExtendedState() | JFrame.MAXIMIZED_BOTH);
--              }
--            }
--          }));
--    windowMenu.addSeparator();
--    windowMenu.add(new JMenuItem(
--        new ResourceAction(preferences, MacOSXConfiguration.class, "BRING_ALL_TO_FRONT", !defaultFrame) {
--            @Override
--            public void actionPerformed(ActionEvent ev) {
--              // Avoid blinking while bringing other windows to front
--              frame.setAlwaysOnTop(true);
--              for (Home home : homeApplication.getHomes()) {
--                JFrame applicationFrame = homeApplication.getHomeFrame(home);
--                if (applicationFrame != frame
--                    && applicationFrame.getState() != JFrame.ICONIFIED) {
--                  applicationFrame.setFocusableWindowState(false);
--                  applicationFrame.toFront();
--                  applicationFrame.setFocusableWindowState(true);
--                }
--              }
--              frame.setAlwaysOnTop(false);
--            }
--          }));
--    
--    windowMenu.addMenuListener(new MenuListener() {
--        public void menuSelected(MenuEvent ev) {
--          boolean firstMenuItem = true;
--          // Fill menu dynamically with a menu item for the frame of each application home
--          for (Home home : homeApplication.getHomes()) {
--            final JFrame applicationFrame = homeApplication.getHomeFrame(home);
--            JCheckBoxMenuItem windowMenuItem = new JCheckBoxMenuItem(
--                new AbstractAction(applicationFrame.getTitle()) {
--                    public void actionPerformed(ActionEvent ev) {
--                      applicationFrame.toFront();
--                    }
--                  });
--              
--            if (frame == applicationFrame) {
--              windowMenuItem.setSelected(true);
--            }
--            if (firstMenuItem) {
--              windowMenu.addSeparator();
--              firstMenuItem = false;
--            }
--            windowMenu.add(windowMenuItem);
--          }
--        }
--
--        public void menuDeselected(MenuEvent ev) {
--          // Remove dynamically filled part of menu
--          for (int i = windowMenu.getMenuComponentCount() - 1; i >= 4; i--) {
--            windowMenu.remove(i);
--          }
--        }
--
--        public void menuCanceled(MenuEvent ev) {
--          menuDeselected(ev);
--        }
--      });
--  }
--  
--  /**
--   * Updates pane tool bar to integrate it with frame title under Mac OS X.
--   */
--  public static void installToolBar(final JRootPane rootPane) {
--    List<JToolBar> toolBars = SwingTools.findChildren(rootPane, JToolBar.class);
--    if (OperatingSystem.isJavaVersionGreaterOrEqual("1.7.0_12")
--        && toolBars.size() == 1) {
--      rootPane.putClientProperty("apple.awt.brushMetalLook", true);
--      final JToolBar toolBar = toolBars.get(0);
--      toolBar.setFloatable(false);
--      toolBar.setBorder(new AbstractBorder() {
--          private final Color TOP_GRADIENT_COLOR_ACTIVATED_FRAME = OperatingSystem.isMacOSXYosemiteOrSuperior() 
--              ? new Color(212, 212, 212)
--              : new Color(222, 222, 222);
--          private final Color BOTTOM_GRADIENT_COLOR_ACTIVATED_FRAME = OperatingSystem.isMacOSXYosemiteOrSuperior() 
--              ? new Color(209, 209, 209)
--              : new Color(178, 178, 178);
--          private final Color TOP_GRADIENT_COLOR_DEACTIVATED_FRAME  = new Color(244, 244, 244);
--          private final Color BOTTOM_GRADIENT_COLOR_DEACTIVATED_FRAME = TOP_GRADIENT_COLOR_ACTIVATED_FRAME;
--
--          @Override
--          public boolean isBorderOpaque() {
--            return true;
--          }
--          
--          @Override
--          public Insets getBorderInsets(Component c) {
--            return new Insets(-4, 4, 0, 4);
--          }
--          
--          @Override
--          public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
--            // Paint the tool bar with a gradient different if the frame is activated or not
--            Component root = SwingUtilities.getRoot(rootPane);
--            boolean active = ((JFrame)root).isActive();
--            ((Graphics2D)g).setPaint(new GradientPaint(0, y, 
--                active ? TOP_GRADIENT_COLOR_ACTIVATED_FRAME : TOP_GRADIENT_COLOR_DEACTIVATED_FRAME, 
--                0, y + height - 1, 
--                active ? BOTTOM_GRADIENT_COLOR_ACTIVATED_FRAME : BOTTOM_GRADIENT_COLOR_DEACTIVATED_FRAME));
--            g.fillRect(x, y, x + width, y + height);
--          }
--        });
--      
--      // Manage frame moves when the user clicks in the tool bar background
--      final MouseInputAdapter mouseListener = new MouseInputAdapter() {
--          private Point lastLocation;
--          
--          @Override
--          public void mousePressed(MouseEvent ev) {
--            this.lastLocation = ev.getPoint();
--            SwingUtilities.convertPointToScreen(this.lastLocation, ev.getComponent());
--          }
--    
--          @Override
--          public void mouseDragged(MouseEvent ev) {
--            Point newLocation = ev.getPoint();
--            SwingUtilities.convertPointToScreen(newLocation, ev.getComponent());
--            Component root = SwingUtilities.getRoot(rootPane);
--            root.setLocation(root.getX() + newLocation.x - this.lastLocation.x, 
--                root.getY() + newLocation.y - this.lastLocation.y);
--            this.lastLocation = newLocation;
--          }
--        };
--      toolBar.addMouseListener(mouseListener);
--      toolBar.addMouseMotionListener(mouseListener);
--      
--      toolBar.addAncestorListener(new AncestorListener() {
--          private Object fullScreenListener;
--
--          public void ancestorAdded(AncestorEvent ev) {
--            ((Window)SwingUtilities.getRoot(toolBar)).addWindowListener(new WindowAdapter() {
--                @Override
--                public void windowActivated(WindowEvent ev) {
--                  toolBar.repaint();
--                }
--                
--                @Override
--                public void windowDeactivated(WindowEvent ev) {
--                  toolBar.repaint();
--                }
--              });
--            toolBar.repaint();
--
--            try {
--              Class fullScreenUtilitiesClass = Class.forName("com.apple.eawt.FullScreenUtilities");
--              this.fullScreenListener = new FullScreenAdapter() {
--                  public void windowEnteredFullScreen(FullScreenEvent ev) {
--                    fullScreen = true;
--                    toolBar.removeMouseListener(mouseListener);
--                    toolBar.removeMouseMotionListener(mouseListener);
--                  }
--                  
--                  public void windowExitedFullScreen(FullScreenEvent ev) {
--                    fullScreen = false;
--                    toolBar.addMouseListener(mouseListener);
--                    toolBar.addMouseMotionListener(mouseListener);
--                  }
--                };
--              FullScreenUtilities.addFullScreenListenerTo((Window)SwingUtilities.getRoot(rootPane), 
--                  (FullScreenListener)this.fullScreenListener);
--            } catch (ClassNotFoundException ex) {
--              // If FullScreenUtilities isn't supported, ignore mouse listener switch
--            }
--          }
--  
--          public void ancestorMoved(AncestorEvent ev) {
--          }
--  
--          public void ancestorRemoved(AncestorEvent ev) {
--            toolBar.removeAncestorListener(this);
--            try {
--              Class fullScreenUtilitiesClass = Class.forName("com.apple.eawt.FullScreenUtilities");
--              FullScreenUtilities.removeFullScreenListenerFrom((Window)SwingUtilities.getRoot(rootPane), 
--                  (FullScreenListener)this.fullScreenListener);
--            } catch (ClassNotFoundException ex) {
--              // If FullScreenUtilities isn't supported, ignore mouse listener switch
--            }
--          }
--        });
--      
--      // Empty left, bottom and right borders of sibling split pane
--      List<JSplitPane> siblings = SwingTools.findChildren((JComponent)toolBar.getParent(), JSplitPane.class);
--      if (siblings.size() >= 1) {
--        JComponent siblingComponent = siblings.get(0);
--        if (siblingComponent.getParent() == toolBar.getParent()) {
--          Border border = siblingComponent.getBorder();
--          final Insets borderInsets = border.getBorderInsets(siblingComponent);
--          final Insets filledBorderInsets = new Insets(1, 0, 0, 0);
--          siblingComponent.setBorder(new CompoundBorder(border, 
--              new AbstractBorder() {
--                @Override
--                public Insets getBorderInsets(Component c) {
--                  return filledBorderInsets;
--                }
--                
--                @Override
--                public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
--                  Color background = c.getBackground();
--                  g.setColor(background);
--                  g.fillRect(x, y, width, 1);
--                  g.fillRect(x - borderInsets.left, y, borderInsets.left, height + borderInsets.bottom);
--                  g.fillRect(x + width, y, borderInsets.right, height + borderInsets.bottom);
--                  g.fillRect(x, y + height, width, borderInsets.bottom);
--                }              
--              }));
--        }
--      }
--    }
--  }
--
--  /**
--   * Returns <code>true</code> if the given window is displayed in full screen mode.
--   */
--  public static boolean isWindowFullScreen(final JFrame frame) {
--    return fullScreen;
--  }
--}
-diff --git a/src/com/eteks/sweethome3d/SweetHome3D.java b/src/com/eteks/sweethome3d/SweetHome3D.java
-index 1e40064..0569f09 100644
---- a/src/com/eteks/sweethome3d/SweetHome3D.java
-+++ b/src/com/eteks/sweethome3d/SweetHome3D.java
-@@ -484,10 +484,12 @@ public class SweetHome3D extends HomeApplication {
-       // Too bad we can't retrieve homes to recover
-       ex.printStackTrace();
-     }
-+/*
-     if (OperatingSystem.isMacOSX()) {
-       // Bind to application menu at last
-       MacOSXConfiguration.bindToApplicationMenu(this);
-     }
-+ */
- 
-     // Run everything else in Event Dispatch Thread
-     EventQueue.invokeLater(new Runnable() {
-@@ -520,9 +522,9 @@ public class SweetHome3D extends HomeApplication {
-       if (System.getProperty("apple.laf.useScreenMenuBar") == null) {
-         // Use Mac OS X screen menu bar for frames menu bar
-         // except for bundles under macOS 10.13
--        System.setProperty("apple.laf.useScreenMenuBar", 
--            String.valueOf(OperatingSystem.compareVersions(System.getProperty("os.version"), "10.13") < 0
--                || MacOSXConfiguration.isScreenMenuBarSupported()));
-+        //System.setProperty("apple.laf.useScreenMenuBar", 
-+        //    String.valueOf(OperatingSystem.compareVersions(System.getProperty("os.version"), "10.13") < 0
-+        //        || MacOSXConfiguration.isScreenMenuBarSupported()));
-       }
-       // Force the use of Quartz under Mac OS X for better Java 2D rendering performance
-       System.setProperty("apple.awt.graphics.UseQuartz", "true");
-@@ -598,8 +600,7 @@ public class SweetHome3D extends HomeApplication {
-                 && home.getName() == null
-                 && !home.isRecovered()) {
-               if (OperatingSystem.isMacOSXLionOrSuperior()
--                  && OperatingSystem.isJavaVersionGreaterOrEqual("1.7")
--                  && MacOSXConfiguration.isWindowFullScreen(getHomeFrame(home))) {
-+                  && OperatingSystem.isJavaVersionGreaterOrEqual("1.7")) {
-                 // Delay home disposal to avoid Java 3D fatal error
-                 new Timer(3000, new ActionListener() {
-                     public void actionPerformed(ActionEvent ev) {
-diff --git a/src/com/eteks/sweethome3d/tools/OperatingSystem.java b/src/com/eteks/sweethome3d/tools/OperatingSystem.java
-index 1b5522a..3fff322 100644
---- a/src/com/eteks/sweethome3d/tools/OperatingSystem.java
-+++ b/src/com/eteks/sweethome3d/tools/OperatingSystem.java
-@@ -33,7 +33,6 @@ import java.util.Timer;
- import java.util.TimerTask;
- import java.util.UUID;
- 
--import com.apple.eio.FileManager;
- import com.eteks.sweethome3d.model.Home;
- 
- /**
-@@ -434,9 +433,12 @@ public class OperatingSystem {
-    */
-   public static File getDefaultApplicationFolder() throws IOException {
-     File userApplicationFolder; 
-+/*
-     if (isMacOSX()) {
-       userApplicationFolder = new File(MacOSXFileManager.getApplicationSupportFolder());
-     } else if (isWindows()) {
-+ */
-+    if (isWindows()) {
-       userApplicationFolder = new File(System.getProperty("user.home"), "Application Data");
-       // If user Application Data directory doesn't exist, use user home
-       if (!userApplicationFolder.exists()) {
-@@ -457,10 +459,12 @@ public class OperatingSystem {
-    * This class requires some classes of <code>com.apple.eio</code> package  
-    * to compile.
-    */
-+/*
-   private static class MacOSXFileManager {
-     public static String getApplicationSupportFolder() throws IOException {
-       // Find application support folder (0x61737570) for user domain (-32763)
-       return FileManager.findFolder((short)-32763, 0x61737570);
-     }
-   }
-+ */
- }
diff --git a/debian/patches/series b/debian/patches/series
index e79f2f0..adb6ae9 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,3 @@
-01noMacOSX
 04manifest
 disable-checkForUpdates.patch
 no-video.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/sweethome3d.git



More information about the pkg-java-commits mailing list