1554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe/* 2554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe * Copyright (C) 2015 The Android Open Source Project 3554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe * 4554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe * Licensed under the Apache License, Version 2.0 (the "License"); 5554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe * you may not use this file except in compliance with the License. 6554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe * You may obtain a copy of the License at 7554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe * 8554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe * http://www.apache.org/licenses/LICENSE-2.0 9554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe * 10554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe * Unless required by applicable law or agreed to in writing, software 11554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe * distributed under the License is distributed on an "AS IS" BASIS, 12554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe * See the License for the specific language governing permissions and 14554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe * limitations under the License. 15554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe */ 16554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe 17554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampepackage com.android.preload.actions; 18554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe 193bf65c916ce65c06b0920ec4b8f68d3ef6c5e721Andreas Gampeimport com.android.preload.Main; 20554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampeimport java.awt.event.ActionEvent; 21554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe 22554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampeimport javax.swing.AbstractAction; 23554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe 24554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampepublic abstract class AbstractThreadedAction extends AbstractAction implements Runnable { 25554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe 26554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe protected AbstractThreadedAction(String title) { 27554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe super(title); 28554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe } 29554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe 30554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe @Override 31554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe public void actionPerformed(ActionEvent e) { 323bf65c916ce65c06b0920ec4b8f68d3ef6c5e721Andreas Gampe if (Main.getUI().isSingleThreaded()) { 333bf65c916ce65c06b0920ec4b8f68d3ef6c5e721Andreas Gampe run(); 343bf65c916ce65c06b0920ec4b8f68d3ef6c5e721Andreas Gampe } else { 353bf65c916ce65c06b0920ec4b8f68d3ef6c5e721Andreas Gampe new Thread(this).start(); 363bf65c916ce65c06b0920ec4b8f68d3ef6c5e721Andreas Gampe } 37554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe } 38554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe 39554d7ee0f5d177b6c0bce805f5a5917b6b211978Andreas Gampe} 40