1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  package com.mindtree.techworks.insight.gui.action;
25  
26  import java.awt.event.ActionEvent;
27  
28  import javax.swing.AbstractAction;
29  
30  import com.mindtree.techworks.insight.Controller;
31  import com.mindtree.techworks.insight.InsightConstants;
32  import com.mindtree.techworks.insight.gui.widgets.StatusBar;
33  import com.mindtree.techworks.insight.preferences.util.PreferenceInterpreter;
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  public class LocateAction extends AbstractAction {
46  	
47  
48  	
49  
50  
51  	private static final long serialVersionUID = -3578056532882836648L;
52  
53  	
54  
55  
56  	private static LocateAction instance;
57  	
58  	
59  
60  
61  	private Controller controller;
62  	
63  	
64  
65  
66  
67  	private LocateAction(Controller controller) {
68  		this.controller = controller;
69  	}
70  	
71  	
72  	
73  
74  
75  
76  	public static synchronized LocateAction getInstance(Controller controller){
77  		if(instance == null){
78  			instance = new LocateAction(controller);
79  		}
80  		return instance;
81  	}
82  	
83  	
84  
85  
86  
87  	public void actionPerformed(ActionEvent e) {		
88  		if (controller.getCurrentLogEventModel() == null) {
89  			return;
90  		}		
91  		long eventSequenceNumber = controller.getCurrentLogEventModel().getLogEventIndex();
92  		if (eventSequenceNumber < 0) {
93  			StatusBar.getInstance().setDisplayText(0,InsightConstants.getLiteral("ERROR_LOCATE_FAILURE"),false);
94  			return;
95  		}
96  	
97  		long eventsPerPage = PreferenceInterpreter.getCachePageSize();		
98  		int pageNumber = (int)((eventSequenceNumber-1)/eventsPerPage+1);
99  		if(!controller.getCurrentLogEventModel().equals(controller.getRootLogEventModel())){
100 			controller.clearCurrentModel();	
101 		}
102 		controller.setCurrentLogEventModel(controller.getRootLogEventModel(),pageNumber,eventSequenceNumber);
103 		
104 	}
105 }