Changeset 12629 in josm for trunk/src/org/openstreetmap/josm/gui
- Timestamp:
- 2017-08-23T21:00:42+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/MainApplication.java
r12620 r12629 5 5 import static org.openstreetmap.josm.tools.I18n.trn; 6 6 7 import java.awt.BorderLayout; 7 8 import java.awt.Dimension; 9 import java.awt.event.KeyEvent; 8 10 import java.io.File; 9 11 import java.io.IOException; … … 33 35 import java.util.Set; 34 36 import java.util.TreeSet; 37 import java.util.concurrent.Callable; 35 38 import java.util.logging.Level; 36 39 import java.util.stream.Collectors; … … 44 47 45 48 import org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager; 49 import org.openstreetmap.gui.jmapviewer.FeatureAdapter; 46 50 import org.openstreetmap.josm.Main; 47 51 import org.openstreetmap.josm.actions.PreferencesAction; … … 50 54 import org.openstreetmap.josm.data.CustomConfigurator; 51 55 import org.openstreetmap.josm.data.Version; 56 import org.openstreetmap.josm.data.validation.OsmValidator; 52 57 import org.openstreetmap.josm.gui.ProgramArguments.Option; 53 58 import org.openstreetmap.josm.gui.SplashScreen.SplashProgressMonitor; 54 59 import org.openstreetmap.josm.gui.download.DownloadDialog; 60 import org.openstreetmap.josm.gui.layer.TMSLayer; 61 import org.openstreetmap.josm.gui.preferences.imagery.ImageryPreference; 62 import org.openstreetmap.josm.gui.preferences.map.MapPaintPreference; 55 63 import org.openstreetmap.josm.gui.preferences.server.OAuthAccessTokenHolder; 56 64 import org.openstreetmap.josm.gui.preferences.server.ProxyPreference; 65 import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets; 57 66 import org.openstreetmap.josm.gui.util.GuiHelper; 58 67 import org.openstreetmap.josm.io.CertificateAmendment; … … 60 69 import org.openstreetmap.josm.io.MessageNotifier; 61 70 import org.openstreetmap.josm.io.OnlineResource; 71 import org.openstreetmap.josm.io.OsmApi; 72 import org.openstreetmap.josm.io.OsmApiInitializationException; 73 import org.openstreetmap.josm.io.OsmTransferCanceledException; 62 74 import org.openstreetmap.josm.io.auth.CredentialsManager; 63 75 import org.openstreetmap.josm.io.auth.DefaultAuthenticator; … … 70 82 import org.openstreetmap.josm.tools.I18n; 71 83 import org.openstreetmap.josm.tools.Logging; 84 import org.openstreetmap.josm.tools.OpenBrowser; 72 85 import org.openstreetmap.josm.tools.OsmUrlToBounds; 86 import org.openstreetmap.josm.tools.OverpassTurboQueryWizard; 73 87 import org.openstreetmap.josm.tools.PlatformHookWindows; 88 import org.openstreetmap.josm.tools.RightAndLefthandTraffic; 89 import org.openstreetmap.josm.tools.Shortcut; 90 import org.openstreetmap.josm.tools.Territories; 74 91 import org.openstreetmap.josm.tools.Utils; 75 92 import org.openstreetmap.josm.tools.WindowGeometry; … … 95 112 */ 96 113 public MainApplication() { 97 // Allow subclassing (see JOSM.java)98 114 this(null); 99 115 } … … 106 122 public MainApplication(MainFrame mainFrame) { 107 123 this.mainFrame = mainFrame; 124 } 125 126 @Override 127 protected List<InitializationTask> beforeInitializationTasks() { 128 return Arrays.asList( 129 new InitializationTask(tr("Starting file watcher"), fileWatcher::start), 130 new InitializationTask(tr("Executing platform startup hook"), platform::startupHook), 131 new InitializationTask(tr("Building main menu"), this::initializeMainWindow), 132 new InitializationTask(tr("Updating user interface"), () -> { 133 undoRedo.addCommandQueueListener(redoUndoListener); 134 // creating toolbar 135 GuiHelper.runInEDTAndWait(() -> contentPanePrivate.add(toolbar.control, BorderLayout.NORTH)); 136 // help shortcut 137 registerActionShortcut(menu.help, Shortcut.registerShortcut("system:help", tr("Help"), 138 KeyEvent.VK_F1, Shortcut.DIRECT)); 139 }), 140 // This needs to be done before RightAndLefthandTraffic::initialize is called 141 new InitializationTask(tr("Initializing internal boundaries data"), Territories::initialize) 142 ); 143 } 144 145 @Override 146 protected Collection<InitializationTask> parallelInitializationTasks() { 147 return Arrays.asList( 148 new InitializationTask(tr("Initializing OSM API"), () -> { 149 // We try to establish an API connection early, so that any API 150 // capabilities are already known to the editor instance. However 151 // if it goes wrong that's not critical at this stage. 152 try { 153 OsmApi.getOsmApi().initialize(null, true); 154 } catch (OsmTransferCanceledException | OsmApiInitializationException e) { 155 Logging.warn(Logging.getErrorMessage(Utils.getRootCause(e))); 156 } 157 }), 158 new InitializationTask(tr("Initializing internal traffic data"), RightAndLefthandTraffic::initialize), 159 new InitializationTask(tr("Initializing validator"), OsmValidator::initialize), 160 new InitializationTask(tr("Initializing presets"), TaggingPresets::initialize), 161 new InitializationTask(tr("Initializing map styles"), MapPaintPreference::initialize), 162 new InitializationTask(tr("Loading imagery preferences"), ImageryPreference::initialize) 163 ); 164 } 165 166 @Override 167 protected List<Callable<?>> asynchronousCallableTasks() { 168 return Arrays.asList( 169 OverpassTurboQueryWizard::getInstance 170 ); 171 } 172 173 @Override 174 protected List<Runnable> asynchronousRunnableTasks() { 175 return Arrays.asList( 176 TMSLayer::getCache, 177 OsmValidator::initializeTests 178 ); 179 } 180 181 @Override 182 protected List<InitializationTask> afterInitializationTasks() { 183 return Arrays.asList( 184 new InitializationTask(tr("Updating user interface"), () -> GuiHelper.runInEDTAndWait(() -> { 185 // hooks for the jmapviewer component 186 FeatureAdapter.registerBrowserAdapter(OpenBrowser::displayUrl); 187 FeatureAdapter.registerTranslationAdapter(I18n.getTranslationAdapter()); 188 FeatureAdapter.registerLoggingAdapter(name -> Logging.getLogger()); 189 // UI update 190 toolbar.refreshToolbarControl(); 191 toolbar.control.updateUI(); 192 contentPanePrivate.updateUI(); 193 })) 194 ); 108 195 } 109 196
Note:
See TracChangeset
for help on using the changeset viewer.